Hirdetés

2024. április 25., csütörtök

Gyorskeresés

Hozzászólások

(#601) amargo válasza Gergello (#600) üzenetére


amargo
addikt

Hopp ezt csúnyán benéztem/ figyeltem..

char s[20]={0};
fscanf(stdin, "%[a-z]", s);

Ezt kerested?

“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”

(#602) blaces


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.

(#603) blaces válasza blaces (#602) üzenetére


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)

(#604) PazsitZ válasza blaces (#602) üzenetére


PazsitZ
addikt

getch() helyett használd a getchar() -t.

[ Szerkesztve ]

- http://pazsitz.hu -

(#605) doc válasza blaces (#603) üzenetére


doc
nagyúr

es ez miert szebb, mintha ugyanezt switch-csel csinalnad? :F
(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);

(#606) blaces válasza doc (#605) üzenetére


blaces
tag

igen az elírás volt :DD Nem kell a case 1: case 2: case 3: esetén nem kell {} jel? az enyémnél szerepel, így mutatták órán...
(ez tényleg szebb és egyszerűbb megoldás kösz :R )

Viszont ha getchar()-t írtam be akkor is ugyanaz a szintaktikai hibája van...

(#607) doc válasza blaces (#606) üzenetére


doc
nagyúr

nem kell {} case-nel, addig megy, amig break-be utkozik
az a syntaxishiba meg erdekes...
mindenesetre ha van pl. ekezetes karakter a file-ban, azt kivennem a helyedben, bar nem mondtam milyen fordito/ide, de ez kepes gondokat okozni...

(#608) blaces


blaces
tag

szintaktikai hiba megoldva :D 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

[feladathoz megadott segédlet linkje:]

(#609) doc válasza blaces (#608) üzenetére


doc
nagyúr

printf ("s=%lf", &s); -> printf ("s=%lf", s);

(#610) blaces


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 ]

(#611) blaces válasza blaces (#610) üzenetére


blaces
tag

már megvan :)

(#612) rallye


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.

(#613) Jester01 válasza rallye (#612) üzenetére


Jester01
veterán

Az attól függ, milyen operációs rendszer alatt.

Jester

(#614) rallye válasza Jester01 (#613) üzenetére


rallye
csendes tag

XP-be, és visual studio 2003.

(#615) Jester01 válasza rallye (#614) üzenetére


Jester01
veterán

Akkor a SetConsoleCursorPosition függvény kell neked és amúgy a Console Reference részt olvasgasd az msdnben.

Jester

(#616) rallye válasza Jester01 (#615) üzenetére


rallye
csendes tag

Köszi szépen a segítséget!

(#617) rallye


rallye
csendes tag

Hát nem nagyon bírom életrekelteni. :U
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();
}

(#618) Jester01 válasza rallye (#617) üzenetére


Jester01
veterán

Megnézted hogyan kell használni? Nem x,y kell neki, hanem egy HANDLE meg egy COORD. Az msdn oldalon amit linkeltem van kész példa is.

Jester

(#619) Benmartin válasza rallye (#617) üzenetére


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();
}

(#620) rallye válasza Benmartin (#619) üzenetére


rallye
csendes tag

Nagyonnagyon szépen köszönöm!

Jester01 neked is köszi! (Igen, elég felületesen néztem át, mert közben tanulok matek zh-ra csak közben evvel is haladnom kellene, és pihenés közben keresgéltem.)

(#621) rallye


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 ]

(#622) Fire/SOUL/CD válasza rallye (#621) üzenetére


Fire/SOUL/CD
félisten

Hali!

Ezt nézd meg, innen meríthetsz ihletet: [link]

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)

(#623) rallye válasza Fire/SOUL/CD (#622) üzenetére


rallye
csendes tag

Köszi szépen! :R

(#624) PazsitZ


PazsitZ
addikt

Valamit biztos nagyon rosszul csinálok, de rég nem programoztam c-ben. :B
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 -

(#625) doc válasza PazsitZ (#624) üzenetére


doc
nagyúr

ahova csillagot raktal, onnan vedd ki, ahova nem tettel, oda meg rakjal be egyet :D
vagyis:

char *input()
return in
back = input()

viszont igy az elejen a back[5]="... resz nem szep, eleg ra sima char *back;

(#626) Jester01 válasza doc (#625) üzenetére


Jester01
veterán

Nagyon rossz ötlet lokális változó címét visszaadni ám.
Arról nem is beszélve, hogy a lezáró 0 bytenak is foglaljon helyet, mert abból is baj lesz.

Jester

(#627) doc válasza Jester01 (#626) üzenetére


doc
nagyúr

valoban nem szep/jo/biztonsagos, de nem akartam szegenyt megijeszteni a pointeres parameteradatasokkal :)
azt meg meg sem szamoltam milyen hosszu a string, de valoban 5 karakter, ugyhogy meg egy byte kene oda....

(#628) PazsitZ


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 cast

Egy Segmentation Fault (core dumped) üzenetet kapok csak :(

- http://pazsitz.hu -

(#629) doc válasza PazsitZ (#628) üzenetére


doc
nagyúr

masold be a modositott forrast, hadd nezzunk ra
foleg az utolso warning oka erdekel...

(#630) PazsitZ válasza doc (#629) üzenetére


PazsitZ
addikt

Hmm, azóta változtattam rajta. Tudom nagyon béna vagyok. :B
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 -

(#631) doc válasza PazsitZ (#630) üzenetére


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...

(#632) PazsitZ válasza doc (#631) üzenetére


PazsitZ
addikt

Hálásan köszönöm a segítséget! :R Így már jó.
Bocsi az amatörségem miatt :B .

- http://pazsitz.hu -

(#633) doc válasza PazsitZ (#632) üzenetére


doc
nagyúr

egeszsegedre :)
az meg, hogy nem megy minden elsore nem amatorseg, max. tapasztalatlansag, idovel menni fog ;)

(#634) blaces


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

(#635) doc válasza blaces (#634) üzenetére


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)

(#636) blaces válasza doc (#635) üzenetére


blaces
tag

Kösz :R 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

(#637) Cathfaern válasza blaces (#636) üzenetére


Cathfaern
nagyúr

3.: C-ben egy értékadás mindig visszatér igaz eredménnyel*, emiatt lesz végtelen.

*itt egy kérdésem lenne nekem is: van arra lehetőség, hogy hamis legyen? Szóval kvázi nem sikerül az értékadás? Ha igen, mitől, milyen esetben?

(#638) doc válasza Cathfaern (#637) üzenetére


doc
nagyúr

nem egeszen, nem igazzal ter vissza, hanem a szobanforgo ertekkel
igy pl. az a=0 erteke 0 lesz

(#639) doc válasza blaces (#636) üzenetére


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

(#640) blaces válasza doc (#639) üzenetére


blaces
tag

köszi, köszi, vágom a harmadikat, és a negyediknél akkor igazából le sem fut a ciklus, hát ez így rohadt jó, már értem ezt is, hogy hogyan működik a C-ben :)

(#641) Steve-S


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!!!

(#642) doc válasza Steve-S (#641) üzenetére


doc
nagyúr

jol latod a szitut :)
C-ben ha nem tudod elore a tombod meretet, akkor vagy atadod plusz parameterkent a meretet, vagy hasznalod a stringeknel alkalmazott megoldast, vagyis valahogy jelolod a veget
szamoknal az elso variacio jatszik :)

(#643) Steve-S válasza doc (#642) üzenetére


Steve-S
tag

Akkor csak jól sejtettem :DDD De ez mi szar mán nem? :W

Set The World On Fire!!!

(#644) doc válasza Steve-S (#643) üzenetére


doc
nagyúr

miert lenne szar? ha ilyesmit akarsz, arra vannak megfelelo adatstrukturak, a sima tomb az gyakorlatilag csak egy mutato
ha neked masra van szukseged, akkor mast hasznalj :)

(#645) Orc


Orc
senior tag

[link] Erre van valakinek ötlete?

Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!

(#646) Fire/SOUL/CD válasza Orc (#645) üzenetére


Fire/SOUL/CD
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)

(#647) Orc válasza Fire/SOUL/CD (#646) üzenetére


Orc
senior tag

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!

(#648) Fire/SOUL/CD válasza Orc (#647) üzenetére


Fire/SOUL/CD
félisten

Hali!

Akkor remélem ez megfelel, másra már nem tudok gondolni... :F
Bocsi ha megint mellétrafálnék... :DDD

#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)

(#649) Orc válasza Fire/SOUL/CD (#648) üzenetére


Orc
senior tag

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!

(#650) kékfej


kékfej
csendes tag

Üdvözletem Mesterek! :)
itt egy abszolút kezdő.. :DDD
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.. :B
köszönöm, annak aki reagál!

Copyright © 2000-2024 PROHARDVER Informatikai Kft.