Új hozzászólás Aktív témák
-
blaces
tag
/* Feladat:
Írjunk programot, amely kiszámolja és kiírja egy gépkocsi fékútját a sebesség és
az útviszonyok függvényében. A feltételezett lassulás:
a) normál úton: 4.4
b) vizes úton: 3.4
c) vizes, nyálkás úton: 2.4
reakcióidő: 1 másodperc
A gépkocsi kezdő sebessége bemenő adat.*/#include <stdio.h>
main()
{
double b, v, aa=4.4, ab=3.4, ac=2.4, s, s1, s2; /* aa=normál út, ab=vizes út, ac=vizes, nyálkás út */
int t=1, menu;//Menü létrehozása, hogy mely útviszonyok között számoljon a program
printf ("Melyik utviszonyt vizsgáljam?\n 1-Normal ut,\n 2-Vizes ut,\n 3-Vizes, Nyalkas ut\n");
scanf ("%d", &menu);switch (menu)
{
case 1:
{
printf("Kerem a kezdosebesseget:\n");
scanf ("%lf", &b);
v=b/3.6;
s1=v*t;
s2=v*v/2*aa;
s=s1+s2;
printf("Gepkocsi fekutja normal uton: s=%lf", &s);
break;
}
case 2:
{
printf("Kerem a kezdosebesseget:\n");
scanf ("%lf", &b);break;
}
case 3:
{
printf("Kerem a kezdosebesseget:\n");
scanf ("%lf", &b);break;
}
default:
{
printf("Hiba\n");
break;
}}
getch();
return 0;
}Hibalista:
C:\Documents and Settings\hallgato\Dokumentumok\utviszony.c In function `main':
18 C:\Documents and Settings\hallgato\Dokumentumok\utviszony.c syntax error before '/' token
18 C:\Documents and Settings\hallgato\Dokumentumok\utviszony.c stray '\252' in program
aztán így tovább csak a számok különböznek... a 252 helyett 246 és stb.Úgy építettem fel mint az órán csináltuk az egyik feladatot, de ott nem rinyált (igaz ott megjegyzést sem tettem be) itt nem tudom hogy mi a baj.
-
blaces
tag
Mivel erősen az órai vázlatra építettem, ezt hogyan lehetne szebben is megírni, hogy a case ágakban ne ismétlődjön a képlet (mert csak az aa, ab, ac változokat kell módosítani).
Erre gondoltam, hogy if else else-vel készíteném el, hogy
printf("Kerem a kezdosebesseget:\n");
scanf ("%lf", &b);
v=b/3.6;
s1=v*t;
if (választottmenüpont == 1) {
s2=v*v/2*aa;}
else (választottmenüpont ==2){
s2=v*v/2*ab;}
else (választottmenüpont == 3){
s2=v*v/2*ab;}
s=s1+s2;
printf("Gepkocsi fekutja normal uton: s=%lf", &s);(vázlatosan)
-
doc
nagyúr
es ez miert szebb, mintha ugyanezt switch-csel csinalnad?
(amugy gondolom a 3. esetnel csak veletlenul irtal ab-t ac helyett)printf("Kerem a kezdosebesseget:\n");
scanf ("%lf", &b);
v=b/3.6;
s1=v*t;
switch (választottmenüpont)
{
case 1: s2=v*v/2*aa; break;
case 2: s2=v*v/2*ab; break;
case 3: s2=v*v/2*ac;break;
}
s=s1+s2;
printf("Gepkocsi fekutja normal uton: s=%lf", &s);vagy akar:
printf("Kerem a kezdosebesseget:\n");
scanf ("%lf", &b);
v=b/3.6;
s1=v*t;
s2=v*v/2;
switch (választottmenüpont)
{
case 1: s2*=aa; break;
case 2: s2*=ab; break;
case 3: s2*=ac;break;
}
s=s1+s2;
printf("Gepkocsi fekutja normal uton: s=%lf", &s); -
blaces
tag
szintaktikai hiba megoldva csak a megjegyzést kellett kitörölnöm...
/* Feladat:
Írjunk programot, amely kiszámolja és kiírja egy gépkocsi fékútját a sebesség és
az útviszonyok függvényében. A feltételezett lassulás:
a) normál úton: 4.4
b) vizes úton: 3.4
c) vizes, nyálkás úton: 2.4
reakcióidő: 1 másodperc
A gépkocsi kezdő sebessége bemenő adat.*/#include <stdio.h>
main()
{
double b, v, aa=4.4, ab=3.4, ac=2.4, s, s1, s2; /* aa=normál út, ab=vizes út, ac=vizes, nyálkás út */
int t=1, menu;printf ("Melyik utviszonyt vizsgaljam?\n 1-Normal ut,\n 2-Vizes ut,\n 3-Vizes, Nyalkas ut\n");
scanf ("%d", &menu);printf("Kerem a kezdosebesseget:\n");
scanf ("%lf", &b);
v=b/3.6; /* km/h órát átkonvertálja m/s-ba */
s1=v*t;switch (menu)
{
case 1: s2=v*v/2*aa; break;
case 2: s2=v*v/2*ab; break;
case 3: s2=v*v/2*ac; break;
default: printf("Hiba"); break;
}
s=s1+s2;
printf("Gepkocsi fekutja normal uton:\n");
printf ("s=%lf", &s);getch();
return 0;
}Eredményre mindig ezt dobja ki: s=0.00000
-
blaces
tag
köszi
Van különbség a b/3.6=v (ebbe beleköt a fordító) és a v=b/3.6 művelet végrehajtása között?
azt akarom, hogy a v egy méter/sec egység legyen, mert a b km/h-ban van...
valahol valamit elszámol a program...[ Szerkesztve ]
-
rallye
csendes tag
Sziasztok!
Az lenne a kérdésem, hogy sima c-ben, hogyan tudom pozícionálni a kiírást?
Például, hogyan tudnám kiírni a 2.sor 5.oszlopába vmit.Valaki azt mondta nekem, hogy goto, de nem sikerült.
Pascalban gotoxy(x,y) volt, de itt nem működött nekem.
Előre is köszönöm a segítséget.
-
Jester01
veterán
Akkor a SetConsoleCursorPosition függvény kell neked és amúgy a Console Reference részt olvasgasd az msdnben.
Jester
-
rallye
csendes tag
Hát nem nagyon bírom életrekelteni.
Ha beleraktam a windows.h/wincon.h-t akkor sem ment.#include <stdlib.h>
#include <conio.h>
#include <stdlib.h>
main() {
char x="3";
SetConsoleCursorPosition(2,2);
printf("%c",x);
getch();
} -
Benmartin
senior tag
szia!
wincon.h-hoz szükséges windows.h, char != char*, azért x = '3'. SetConsoleCursorPosition() fvnek nem csak header kell, hanem library is(kernel32). valamint nem két int a paramétere, hanem:
BOOL WINAPI SetConsoleCursorPosition(
__in HANDLE hConsoleOutput,
__in COORD dwCursorPosition
);ennek megfelelően így alakul a kód:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <wincon.h>
main() {
COORD kord;
HANDLE hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
kord.X = 2;
kord.Y = 3;
char x = '3';
SetConsoleCursorPosition(hConsoleOutput,kord);
printf("%c",x);
getch();
} -
rallye
csendes tag
Azt szeretném csinálni, hogy automatikusan leálljon a 10.mp-ben, de nem sikerült.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
clock_t clock(void);
main(){
double a;
getch();
a=clock()/CLOCKS_PER_SEC;
if(a>10.0){
printf("A program kezdete ota eltelt ido: %2.2f mp ezert leallt.",a);
getch();
return 0;}
else
printf("A program kezdete ota eltelt ido: %2.2f mp.",a);
getch();
}[ Szerkesztve ]
-
rallye
csendes tag
válasz Fire/SOUL/CD #622 üzenetére
Köszi szépen!
-
PazsitZ
addikt
Valamit biztos nagyon rosszul csinálok, de rég nem programoztam c-ben.
Szóval a lényeg az lenne, hogy átadjak egy stringet egy függvényből a main-be.
De ehelyett csak 1 karaktert hajlandó átadni .#include <stdio.h>
char back[5];
char input()
{
char in[5]="Hello";
printf("%s \n",in);
return *in;
}
int main(int argc, char *argv[])
{
*back = input() ;
printf("%s \n",back);
return 0;
}- http://pazsitz.hu -
-
PazsitZ
addikt
Köszönöm a válasz elnézést, hogy csak most reagálok, de nem megy
pár warning után:
main.c: In function `input':
main.c:9: warning: function returns address of local variable
main.c: In function `main':
main.c:14: warning: assignment makes integer from pointer without a castEgy Segmentation Fault (core dumped) üzenetet kapok csak
- http://pazsitz.hu -
-
PazsitZ
addikt
Hmm, azóta változtattam rajta. Tudom nagyon béna vagyok.
Amúgy most látom, hogy van külön linux c topik is. Én most épp solaris allatt fordítok.
Jelen pillanatban ezt kapom vissza:
Hello
ا��o
ebből:#include <stdio.h>
char *back;
char *input()
{
char in[6]="Hello";
printf("%s \n",in);
return in;
}
int main()
{
back = input();
printf("%s \n",back);
return 0;
}[ Szerkesztve ]
- http://pazsitz.hu -
-
doc
nagyúr
a gond az, hogy igazabol nem tudom, mit szeretnel elerni
de kicsit atalakitottam, hogy azt csinalja amit szerintem szeretnel hogy csinaljon...
#include <stdio.h>
char *input(char *s)
{
strcpy(s,"Hello");
printf("%s \n",s);
return s;
}
int main()
{
char s[1024];
printf("%s \n", input(s));
return 0;
}igy legalabb csunyarondafujnemszabad globalis valtozo sincs, meg lokalis valtozo visszaadasa, meg egyeb "ejnyebejnyekezedrecsapok" megoldasok...
-
blaces
tag
Sziasztok!
Én csak annyit találtam a végtelen ciklusokról, hogy ha a feltétélük mindig igaz, akkor végtelen ciklus lesz. Csak akkor lép ki a feltételből ha az már hamissá teszi.
Ezek közül melyik végtelen ciklus és miért? hogyan értelmezi ezt a program? (az if-eset jól elmagyaráztatok anno)
a, i=10, while (i);
b, while (i=10) i;
c, for(x=1; x=10; x++);
d, for(x=1; x==10; x++);Szerintem az a, c, d végtelen ciklus
-
doc
nagyúr
az elso harom a vegtelen, mivel ezekben a feltetel nem 0 (es ami nem 0, az a C-ben igaz)
eloszor ugye a feltetel az i valtozo, aminek az erteke 10, tehat igaz
a masodik esetben a feltetelben az i-be 10-et raksz, igy a kifejezes erteke is 10, tehat igaz
a c-nel ugyanaz az eset mint a masodiknal
a harmadiknal viszont egyszer sem fut le a ciklus, mivel a feltetel az, hogy i egyenlo 10-zel, de ez sosem teljesul (i erteke 1, igy be sem megy a ciklusba) -
blaces
tag
Kösz az első kettőnél vágom, hogy akkor hogyan lehet igaz a feltétel
A harmadiknál értem, hogy miért nem megy be a ciklusba, mivel ott igazából nincs feltétel, csak kétszer lett megadva az x, de azt nem értem, hogy miért végtelen
A negyedik azért véges, mert addig csinálja amíg egyenlő lesz 10-el az x, de amint 11 lesz az x értéke akkor 0 lesz, azaz hamis, így véges a ciklus
-
doc
nagyúr
no, a harmadik:
elso lepesben i erteke 1 lesz
utana megvizsgalja a feltetelt (mivel a C-s for ciklus lenyegeben egy specialis while), a feltetel pedig az, hogy i erteke legyen 10, ami a 10-es erteket adja vissza, ami ugye igaznak szamit, es ezt minden egyes ciklusban vegrehajtja (vagyis i erteke mindig 10)a negyediknel meg nem egeszen az a szitu, eloszor ugye i 1 lesz, utana ellenorzi a feltetelt, es akkor megy bele a ciklusba (szep parasztosan megfogalmazva) ha i erteke 10, de mivel nem annyi, igy sosem hajtodik vegre a ciklusmag
-
Steve-S
tag
Hi all!
A kérdésem:
Van egy függyvény definíció: double tombatlag(double *tomb)
ez kiszámítaná a tömb eleminek az átlagát és visszaadja azt. Azt nem tudom hogy hogy kellene az elem összeadó ciklusnak megadni azt hogy meddig menjen, magyarán mennyi a tömb mérete, vagy hogy hol van a tömb vége, anélkül hogy ezt megadnánk a függvénynek paraméterként, vagy a ciklusváltozóban beírnám a feltételnél az elemszámot?
Itt van egy példa amelyben kiszámolja amennyiben tudom a tömb méretét, de nekem az a verzió kéne mikor nem tudom előre a méretet. Egyáltalán van erre valamilyen módszer C-ben? Sok mindent próbálgattam már, de eddig nem volt jó semmi.double tombatlag(double *tomb)
{
double osszeg=0;
int j, db=0;
for(j=0;j<5;j++)
{
osszeg += *tomb++;
db++;
}
return osszeg/db;
}Set The World On Fire!!!
-
Orc
senior tag
[link] Erre van valakinek ötlete?
Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!
-
félisten
Hali!
Remélem erre gondoltál, lista-szerkezetnek vagy láncolt listának(ahogy tetszik) hívják.
#include <stdio.h>
#include <stdlib.h>
struct Alma {
int value;
struct Alma *next;
};
int main()
{
struct Alma KORTE[2];
KORTE[0].value=10;
KORTE[0].next=&KORTE[1];
KORTE[1].value=20;
KORTE[1].next=NULL;
printf("Korte 1 erteke: %d\n",KORTE[1].value);
(KORTE[0].next)->value=30;
printf("Korte 1 erteke uj ertke: %d\n",KORTE[1].value);
return 0;
}Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Orc
senior tag
válasz Fire/SOUL/CD #646 üzenetére
Nem egészen erre gondoltam, hanem valami ilyesmire:
alma.h
class alma
{
public:
int szin;
virtual int kiir();
...
};
class körte : public alma
{
public:
int meret;
körte(int szin,int meret);
...
};
main.cpp:
cin>>meret;
cin>szin;
Node* a;
a<<körte(szin,meret);Valami ilyesmi kellene, csak az a kérdés, hogy milyen típusú listával tudom ezt megtenni...
Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!
-
félisten
Hali!
Akkor remélem ez megfelel, másra már nem tudok gondolni...
Bocsi ha megint mellétrafálnék...#include <iostream>
using namespace std;
typedef class T_ALMA {
int i, j;
public:
void beallit(int a, int b) {
i = a;
j = b;
}
void almakiir() {
cout << "En a T_ALMA vagyok: ";
cout << i << " " << j << endl;
}
}ALMA;
typedef class T_KORTE : public ALMA {
public:
void kortekiir() {
cout << "En a T_KORTE vagyok\n";
}
}KORTE;
int main()
{
KORTE kortek[2];
kortek[0].beallit(1,2);
kortek[1].beallit(3,4);
kortek[0].almakiir();
kortek[1].almakiir();
kortek[0].kortekiir();
kortek[1].kortekiir();
return 0;
}Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Orc
senior tag
válasz Fire/SOUL/CD #648 üzenetére
Köszi, a listán kellet farigcsálnom egy kicsit.
Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!
-
kékfej
csendes tag
Üdvözletem Mesterek!
itt egy abszolút kezdő..
az ügyben kérném a segítségeteket, h honnan tudnék fordítóprog-ot letölteni windows xp-re..C-ben sztnék programozni..
másik kérdésem: ha esetleg weboldalakkal sztnék foglalkozni, akk ahhoz előfeltétel h tudjak C-ben prog-zni? v elég a HTML v CSS ismeret? amit örömmel vennék ha vki elmagyarázná mit jelent..
köszönöm, annak aki reagál!
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!