-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-04-25 14:12 Téma összefoglaló
Új hozzászólás Aktív témák
-
plaschil
aktív tag
Ami a // után van, az ki van kommentezve. Még egy kérdés mik a lényegesebb különbségek a struct és az union között?
-
plaschil
aktív tag
Segítsetek légyszi ha tudtok!
Olyan progit kell írnom ami összehasonlítja két fájl tartalmát. vagy két adott fájlt, vagy egy adottat és egy begépeltet. na a két adott fájl rész már lefut. szépen ki is írja hogy hol nem egyezik a két fájl. de a második része nem jó valamiért. begépelem a szöveget, el kéne elvileg mentenie egy txt-be, és utána összehasonlítania egy másik adott txt-vel. de mikor entert ütök, hogy jelezzem befejeztem a fájl írását, nem tudom elkezdi -e összehasonlítani, mert segmentation fault (core dumped)-del kilép.itt a második része a proginak.case 2:
printf("Gepelje be a szoveget, majd usson egy entert!\n");
f2=fopen("haha.txt","w+");
scanf("%s",&f);
fprintf(f2,"%s",f);b=1000;
for(a=0;a<b;a++)
//while((e=getchar())!=EOF)
{c=getc(f1);
d=getc(f2);if(c!=d)
{
//printf("%c", c);
//printf("%c ", d);
break;
a++;
}}
//a++;
if(a!=b)
{
fprintf(stderr, "\n A ket szoveg ettől a karaktertol nem egyezik: %d", a);
getchar();
}
if(a=b)
{
getchar();}
fclose(f1);
fclose(f2);break;
break;
}
} -
doc
nagyúr
-
plaschil
aktív tag
-
PazsitZ
addikt
-
doc
nagyúr
-
plaschil
aktív tag
Sziasztok!
Van egy progim, és az a kikötés hogy az STDERR-re kéne kiíratni a hibaüzeneteket. (Nem STDIO-ra.) Hogy kell ezt megcsinálni? -
sghc_toma
senior tag
OK, kösz mindkettőtöknek.
-
doc
nagyúr
számunkra fura dolgot találtunk tegnap programozás közben.. a kódban maradt egy olyan sor, hogy zárójelben egy pár érték, valahogy így: (4, "sdfg", 23).. A kód lefordult, a progi működött.. megnéztem objdump-pal ennek a két forrásnak megfelelő progit:
int main() {(1,2,3,4); printf("qwer"); return 0;}
, illetve
int main() {printf("qwer"); return 0;}
semmi különbség nincs az assembly kódok közt...
a kérdésem: ez mitől "érvényes" kód c-ben, c++-ban?létezik egy ilyen megoldás, ez csak annyit csinál, hogy a zárójelen belüli, egymástól vesszővel elválasztott parancsokat lefuttatja
a szám meg ugye elmegy parancsnak
-
Jester01
veterán
számunkra fura dolgot találtunk tegnap programozás közben.. a kódban maradt egy olyan sor, hogy zárójelben egy pár érték, valahogy így: (4, "sdfg", 23).. A kód lefordult, a progi működött.. megnéztem objdump-pal ennek a két forrásnak megfelelő progit:
int main() {(1,2,3,4); printf("qwer"); return 0;}
, illetve
int main() {printf("qwer"); return 0;}
semmi különbség nincs az assembly kódok közt...
a kérdésem: ez mitől "érvényes" kód c-ben, c++-ban?Mert csak
A zárójel meg a számok rendben vannak, a vessző meg operátor. -
sghc_toma
senior tag
számunkra fura dolgot találtunk tegnap programozás közben.. a kódban maradt egy olyan sor, hogy zárójelben egy pár érték, valahogy így: (4, "sdfg", 23).. A kód lefordult, a progi működött.. megnéztem objdump-pal ennek a két forrásnak megfelelő progit:
int main() {(1,2,3,4); printf("qwer"); return 0;}
, illetve
int main() {printf("qwer"); return 0;}
semmi különbség nincs az assembly kódok közt...
a kérdésem: ez mitől "érvényes" kód c-ben, c++-ban? -
Tv
senior tag
$ jellel? na ilyet sem hallottam még
alapvetően az a probléma, hogy a sorvéget alapvetően háromféleképpen szokás kezelni
Linux alatt a sorvégeket a \n zárja le (10-es karakter)
OSX alatt ha jól tudom a \r (13-as)
DOS alatt meg valami elmebeteg okból kifolyólag mindkettő egyszerre (\r\n), de ezt a dos/windows-os C programok egy karakterre fordítják
viszont mikor Linux alatt olvasod be a file-t, azt látja hogy a sor legutolsó karaktere egy \r, majd utána jön csak a sorvégeHát igen a linux képes ilyen csodákra
. Nekem is csak úgy beugrott, mikor mondtad a sorvéges dolgot, hogy van valami $ jeles dolog is
. Mondom kipróbálom nincs mit veszteni, erre jó is lett egyből, minden működik ahogy kell. Az volt a gáz, hogy xp alatt írtam a progit, ment is jól, aztán ftp-n feltöltöttem linux-ra, és ott putty-on át akartam volna fordítani, futtatni.

-
doc
nagyúr
$ jellel? na ilyet sem hallottam még
alapvetően az a probléma, hogy a sorvéget alapvetően háromféleképpen szokás kezelni
Linux alatt a sorvégeket a \n zárja le (10-es karakter)
OSX alatt ha jól tudom a \r (13-as)
DOS alatt meg valami elmebeteg okból kifolyólag mindkettő egyszerre (\r\n), de ezt a dos/windows-os C programok egy karakterre fordítják
viszont mikor Linux alatt olvasod be a file-t, azt látja hogy a sor legutolsó karaktere egy \r, majd utána jön csak a sorvége -
Tv
senior tag
De szerintem is az! Vagy amikor a fájlból olvasom be a sorokat, majd megfordítom őket, valamit másképp csinál a linux, mint a win?
Ezt a sorvéges dolgot nem vágom. Win alatt mikor beolvasok egy sort, akkor a végét a C \n-ként kezeli. Linux alatt ez hogy van?
Mert ott hibázik a progi, ahol a beolvasott és megfordított sorokat hasonlítja össze a másik megfordított sztringgel
Nah végre magoldódott a rejtély
. A linux-ban a C a sorvégeket $-jellel kezeli. Minden működik.doc! Köszi a segítséget. Ha nem mondod sose jutott volna eszembe

-
Tv
senior tag
De szerintem is az! Vagy amikor a fájlból olvasom be a sorokat, majd megfordítom őket, valamit másképp csinál a linux, mint a win?
Ezt a sorvéges dolgot nem vágom. Win alatt mikor beolvasok egy sort, akkor a végét a C \n-ként kezeli. Linux alatt ez hogy van?
Mert ott hibázik a progi, ahol a beolvasott és megfordított sorokat hasonlítja össze a másik megfordított sztringgel
-
doc
nagyúr
Szaszok! Már megint gond van
minygyárt megőrülök. A progit megírtam, működik is rendesen windóz alatt, de linux-on az istennek se akar. Vetnétek rá egy pillantást lécci? Fontos lenne
. Köszi előre is. A gond valahol a sztringek összehasonlításánál lehet.#include <stdio.h>
#include <stdlib.h>
#include<string.h>int maxsorh(FILE *f2)
{
int x=0;
int y=0;
char str[1024];if ((f2=fopen("text2.txt","r"))== NULL)
{printf("Nem letezik a text2.txt allomany!\n");
exit(-1);}
else
while (fgets(str,1024,f2))
{
printf("%s",str);
x=strlen(str);if(x>y)
{
y=x;
x=0;
}}
printf("A text2.txt fajl leghosszabb soranak hossza: %d\n",y);
}
void rev(char* s){
int i, j= strlen(s)-2;
char temp;
for (i=0; i < j; i++, j--)
{
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
main()
{FILE *f1;
FILE *f2;
char buff[1024];
int i=0;
char szo[]="alma\n";
rev(szo);
if ((f1=fopen("text1.txt","r"))== NULL)
{printf("Nem letezik a text1.txt allomany!\n");
exit(-1);}
else
{while (fgets(buff,1024,f1))
{
printf("%s",buff);
rev(buff);
printf("%s",buff);if (strncmp(buff,szo,4) ==0 )
{
f2 = fopen("text2.txt", "a");
rev(buff);
fprintf(f2,"%s",buff);
fclose(f2);
}}
printf("\n");
fclose(f1);}
maxsorh(f2);
}esetleg a "nem működik"-nél pontosabb hibaleírást is tudnál adni?
így elsőre nem lehet hogy az idióta dosos sorvégek kavarnak be? -
Tv
senior tag
Szaszok! Már megint gond van
minygyárt megőrülök. A progit megírtam, működik is rendesen windóz alatt, de linux-on az istennek se akar. Vetnétek rá egy pillantást lécci? Fontos lenne
. Köszi előre is. A gond valahol a sztringek összehasonlításánál lehet.#include <stdio.h>
#include <stdlib.h>
#include<string.h>int maxsorh(FILE *f2)
{
int x=0;
int y=0;
char str[1024];if ((f2=fopen("text2.txt","r"))== NULL)
{printf("Nem letezik a text2.txt allomany!\n");
exit(-1);}
else
while (fgets(str,1024,f2))
{
printf("%s",str);
x=strlen(str);if(x>y)
{
y=x;
x=0;
}}
printf("A text2.txt fajl leghosszabb soranak hossza: %d\n",y);
}
void rev(char* s){
int i, j= strlen(s)-2;
char temp;
for (i=0; i < j; i++, j--)
{
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
main()
{FILE *f1;
FILE *f2;
char buff[1024];
int i=0;
char szo[]="alma\n";
rev(szo);
if ((f1=fopen("text1.txt","r"))== NULL)
{printf("Nem letezik a text1.txt allomany!\n");
exit(-1);}
else
{while (fgets(buff,1024,f1))
{
printf("%s",buff);
rev(buff);
printf("%s",buff);if (strncmp(buff,szo,4) ==0 )
{
f2 = fopen("text2.txt", "a");
rev(buff);
fprintf(f2,"%s",buff);
fclose(f2);
}}
printf("\n");
fclose(f1);}
maxsorh(f2);
} -
Tv
senior tag
Nah sikerült megcsinálni a nagy részét a feladatnak, már csak azt nem tudom, hogy hogyan kellene megcsinálni, hogy mindegyik sornak a végét hasonlítsa össze egy előre megadott sztringgel. Tehát ha az előre megadott sztring pl. az, hogy "alma" , akkor azt nézze, hogy a sor az alma szóval zárul-e vagy sem. Erre esetleg van ötlete valakinek?
Már tárgytalan
sikerült megoldani -
Tv
senior tag
Nah sikerült megcsinálni a nagy részét a feladatnak, már csak azt nem tudom, hogy hogyan kellene megcsinálni, hogy mindegyik sornak a végét hasonlítsa össze egy előre megadott sztringgel. Tehát ha az előre megadott sztring pl. az, hogy "alma" , akkor azt nézze, hogy a sor az alma szóval zárul-e vagy sem. Erre esetleg van ötlete valakinek?
-
shev7
veterán
-
Tv
senior tag
-
shev7
veterán
Szevasztok! Volna egy olyan gondom, hogy nemtudom hogy C-ben egy szöveges fájlból soronként beolvasni. Tehát az szeretném, hogy beolvasom a fájlt soronként és minden soban megvizsgálom, hogy benne van-e egy adott szó, és ha igen, akkor az adott sorf kiírom egy másik fájlba. Eddig annyira jutottam, hogy a fájlkezelés része kész van. De ez így csak a egy szónál működik(pl. "alma"), (még nem kinlódtam a kereséses résszel). A legfontosabb a soronkénti sztringe olvasás volna, a többi részét szerintem meg tudom oldani majd.
#include <stdio.h>
#include <stdlib.h>main()
{FILE *f1;
char buff[1024];
int i=0;
if ((f1=fopen("text1.txt","r"))== NULL)
{printf("Nem letezik a text1.txt allomany!\n");
exit(-1);}
else
{while (fgets(buff,1024,f1))
{printf("%s",buff);
}
fclose(f1);
}if (strcmp(buff, "alma") == 0)
{
FILE *f2;
f2 = fopen("text2.txt", "w");
fprintf(f2, "%s",buff);}
}Köszi előre is.
az fgets nem soronkent olvassa a filet?
-
Tv
senior tag
Szevasztok! Volna egy olyan gondom, hogy nemtudom hogy C-ben egy szöveges fájlból soronként beolvasni. Tehát az szeretném, hogy beolvasom a fájlt soronként és minden soban megvizsgálom, hogy benne van-e egy adott szó, és ha igen, akkor az adott sorf kiírom egy másik fájlba. Eddig annyira jutottam, hogy a fájlkezelés része kész van. De ez így csak a egy szónál működik(pl. "alma"), (még nem kinlódtam a kereséses résszel). A legfontosabb a soronkénti sztringe olvasás volna, a többi részét szerintem meg tudom oldani majd.
#include <stdio.h>
#include <stdlib.h>main()
{FILE *f1;
char buff[1024];
int i=0;
if ((f1=fopen("text1.txt","r"))== NULL)
{printf("Nem letezik a text1.txt allomany!\n");
exit(-1);}
else
{while (fgets(buff,1024,f1))
{printf("%s",buff);
}
fclose(f1);
}if (strcmp(buff, "alma") == 0)
{
FILE *f2;
f2 = fopen("text2.txt", "w");
fprintf(f2, "%s",buff);}
}Köszi előre is.
-
ceginner
csendes tag
Köszönöm Szépen Zoli!
Meg fogom nézni hamarosan, sokat segítettél ezzel!

-
ceginner
csendes tag
Minden segítség jól jöhet! Lehet, hogy pont találok benne valami olyat, ami sokat segít.
Már vagy 7 verziót írtam, 5-öt töltöttem fel eddig, de 0 pontot kaptam rá. Annál csak jobb lehet. Akkor légyszi küldd már el...

-
PazsitZ
addikt
Sziasztok Sorstársak!
Elakadtam a 2. kötprogival és egy kis segítség kellene. Konkrétan a LÁDAPAKOLÁS lenne a téma. Konkrétabban: Egy gyárban egy nap csak azonos súlyú termékeket gyártanak és ezeket ládába pakolják, egy ládában max. 100 kg lehet. Egy nap max. 1000 db-ot készítenek egy-egy S súlyú termékből... Azt hogy melyik ládába pakoljunk a legkisebb négyzetek módszerével kellene megkeresni, de sehogy sem sön ki az adott kimenet.
Mit ronthattam el?
Bemenetben az első szám a napok száma, a második két szám pedig db és súly.
Már nem ez az első verzió, de már tisztára belezavarodtam. Nem tudom hogyan kellene megírni jól az algoritmust, hogy 100 db fölötti adatokra is jól működjön.Pl.: Bemenet:
1
347 6Kimenet:
0000010000010000010000010
0000100000100000000000100
0001000001000001000002000
0020000030000040000060000Az első sor első eleme, az egy kilós ládák száma - és így tovább egyészen százig...
Az általam írt kód:
#include <stdio.h>
#define M 1000
#define N 100
int Sulyok[M+1]={0};
int Darabok[N+1]={0};
int darab(int suly)
{
int j,s;
int r=1;
s = suly;
for(j=0;j<N;j++)
if (Sulyok[j] == s) r+= 1; //else r=N-1;
return r;
}
void pakol(int db,int s)
{
int K=0,a=0;
int i=0,j=0,k=1,l=0;
int opt=0;
int szumma=1000;
int NAGYSZAM = 10000;
int ossz;
int suly;
ossz = db*s;
suly = s;
Sulyok[0] = s; //az első elemet betesszük
while(i <db){
if ((s == 1) && (suly%100 != 0)) {Darabok[99] = db/10; Darabok[0] = 0;/*Darabok[100-Sulyok[k-1]]-=1;*/}
if (Sulyok[k-1] <= 100)
{
if (suly != 1) Sulyok[k] += suly;
// k+=1;
szumma = darab(Sulyok[k-1]+s)*darab(Sulyok[k-1]+s); //gyakorisag az uj suly berakasa utan
if (szumma <= NAGYSZAM)
{opt += 1;
NAGYSZAM = szumma;
k=i;
if(opt >= 1)
for(l=0;l<=k;l++)
{
if(Sulyok[l] > K) {K=Sulyok[l]; k=l;}
}
} else k+=1; //ha ezek a feltetelek nem teljesulnek uj lada kell
/ if (Sulyok[k] == (100-Sulyok[k])) {Darabok[100] += 1;}
Darabok[Sulyok[k]-1] += 1;
}
i += 1;
}
}
void kiir2(){
int i=0,j,k,l,m;
FILE* ki;
ki=fopen("ki.txt","w");
while(i<4){
for (j=0;j<N/4;j++){
if (i>0) k = (i*25)+j;
fprintf(ki,"%d ", Darabok[((i*25)+j)]); }
i+=1; fputc('\n',ki);}
fclose(ki);
}
int main()
{
int i;
int nap,suly,db;
FILE* in;
in=fopen("be.txt","r");
fscanf(in,"%d",&nap);
if (nap >=1 && nap<=10)
for (i=0;i<nap;i++){ fscanf(in,"%d %d",&db,&suly);
if (db >= 1 && db <= 1000)
if (suly >=1 && suly <=100) {
//feldolgozhatjuk az adatokat
pakol(db,suly);
}
}
kiir2();
fclose(in);
return 0;
}Minden segítséget és hozzászólást előre is köszönök!
Hát, nekem is ki volt ez osztva mint lehetséges kötprog. Meg is csináltam, de nem tökéletes. Bizonyos inputoknál, valahol hibázik.
Most sajna nincs energiám belekezdeni még a saját kódom fejtegetésébe sem, de ha gondolod elküldhetem az én progimat, ha az segít valamit. -
ceginner
csendes tag
Sziasztok Sorstársak!
Elakadtam a 2. kötprogival és egy kis segítség kellene. Konkrétan a LÁDAPAKOLÁS lenne a téma. Konkrétabban: Egy gyárban egy nap csak azonos súlyú termékeket gyártanak és ezeket ládába pakolják, egy ládában max. 100 kg lehet. Egy nap max. 1000 db-ot készítenek egy-egy S súlyú termékből... Azt hogy melyik ládába pakoljunk a legkisebb négyzetek módszerével kellene megkeresni, de sehogy sem sön ki az adott kimenet.
Mit ronthattam el?
Bemenetben az első szám a napok száma, a második két szám pedig db és súly.
Már nem ez az első verzió, de már tisztára belezavarodtam. Nem tudom hogyan kellene megírni jól az algoritmust, hogy 100 db fölötti adatokra is jól működjön.Pl.: Bemenet:
1
347 6Kimenet:
0000010000010000010000010
0000100000100000000000100
0001000001000001000002000
0020000030000040000060000Az első sor első eleme, az egy kilós ládák száma - és így tovább egyészen százig...
Az általam írt kód:
#include <stdio.h>
#define M 1000
#define N 100
int Sulyok[M+1]={0};
int Darabok[N+1]={0};
int darab(int suly)
{
int j,s;
int r=1;
s = suly;
for(j=0;j<N;j++)
if (Sulyok[j] == s) r+= 1; //else r=N-1;
return r;
}
void pakol(int db,int s)
{
int K=0,a=0;
int i=0,j=0,k=1,l=0;
int opt=0;
int szumma=1000;
int NAGYSZAM = 10000;
int ossz;
int suly;
ossz = db*s;
suly = s;
Sulyok[0] = s; //az első elemet betesszük
while(i <db){
if ((s == 1) && (suly%100 != 0)) {Darabok[99] = db/10; Darabok[0] = 0;/*Darabok[100-Sulyok[k-1]]-=1;*/}
if (Sulyok[k-1] <= 100)
{
if (suly != 1) Sulyok[k] += suly;
// k+=1;
szumma = darab(Sulyok[k-1]+s)*darab(Sulyok[k-1]+s); //gyakorisag az uj suly berakasa utan
if (szumma <= NAGYSZAM)
{opt += 1;
NAGYSZAM = szumma;
k=i;
if(opt >= 1)
for(l=0;l<=k;l++)
{
if(Sulyok[l] > K) {K=Sulyok[l]; k=l;}
}
} else k+=1; //ha ezek a feltetelek nem teljesulnek uj lada kell
/ if (Sulyok[k] == (100-Sulyok[k])) {Darabok[100] += 1;}
Darabok[Sulyok[k]-1] += 1;
}
i += 1;
}
}
void kiir2(){
int i=0,j,k,l,m;
FILE* ki;
ki=fopen("ki.txt","w");
while(i<4){
for (j=0;j<N/4;j++){
if (i>0) k = (i*25)+j;
fprintf(ki,"%d ", Darabok[((i*25)+j)]); }
i+=1; fputc('\n',ki);}
fclose(ki);
}
int main()
{
int i;
int nap,suly,db;
FILE* in;
in=fopen("be.txt","r");
fscanf(in,"%d",&nap);
if (nap >=1 && nap<=10)
for (i=0;i<nap;i++){ fscanf(in,"%d %d",&db,&suly);
if (db >= 1 && db <= 1000)
if (suly >=1 && suly <=100) {
//feldolgozhatjuk az adatokat
pakol(db,suly);
}
}
kiir2();
fclose(in);
return 0;
}Minden segítséget és hozzászólást előre is köszönök!
-
Dead_slow
tag
Örülök hogy segítettem. De máskor inkább magad csináld meg

Ok, úgy lesz. Örülök hogy segíthettél

-
doc
nagyúr
sürgős lenne, pls HELP
most lettél leb@szva

ott a prog.hu, ott direkt van házikészítős topic... -
darnellsmith
senior tag
1. Ellenőrzötten bekér egy pozitiv egész számot. A számnak 100 és 200 közé kell esnie. Az elfogadott értéket nevezzük n-nek.
2. Ezután n darab pozitiv háromjegyű egész számot kell végtelenszámgenerátorral előállítania és közben képernyőre 4 pozicios mezőszélességgel kiiratnia.
3.a végén jelenitse meg hogy a generált számok közül hány darab volt páros és hány darab volt páratlan.
vki segitsen plssürgős lenne, pls HELP
-
Lortech
addikt
Házikkal legyetek szivesek máshova fáradni, ez nem az "itt a házim csináld má' meg" topik!
Ha elkezditek, látni valamit, hogy próbáljátok megoldani, biztos lesz segítség is. -
darnellsmith
senior tag
1. Ellenőrzötten bekér egy pozitiv egész számot. A számnak 100 és 200 közé kell esnie. Az elfogadott értéket nevezzük n-nek.
2. Ezután n darab pozitiv háromjegyű egész számot kell végtelenszámgenerátorral előállítania és közben képernyőre 4 pozicios mezőszélességgel kiiratnia.
3.a végén jelenitse meg hogy a generált számok közül hány darab volt páros és hány darab volt páratlan.
vki segitsen pls -
rOwLeY
őstag
Emberek, lenne vki estleg vmi fejében vállalna nekem beadandó házi megírást?!BME villany első félév!
-
.DLL
veterán
Halihó!
Valaki megtudná csinálni ezt a progit nekem:
Készítsen programot, amely szavakat kér be pont végjelig, s ezekből a szavakból összeállít egy mondatot úgy, hogy az egy külön stringként legyen letárolva. Ezután számolja meg a mondatban található kisbetűs rövid magánhangzókat.
A felévi jegyem múlik rajta.Én megpróbálom, már a magam gyakorlására, a fenti kis gyakorló progit is egy hétig írtam, bár miután itt kérdeztem, és választ kaptam már gyorsan ment!
Rám is vár egy zh pótlás és egy vizsga is, (csak nekünk ott adják ki a feladatot..) :\ -
Orb1337
tag
Halihó!
Valaki megtudná csinálni ezt a progit nekem:
Készítsen programot, amely szavakat kér be pont végjelig, s ezekből a szavakból összeállít egy mondatot úgy, hogy az egy külön stringként legyen letárolva. Ezután számolja meg a mondatban található kisbetűs rövid magánhangzókat.
A felévi jegyem múlik rajta. -
[HUN]Zolee
őstag
-
.DLL
veterán
-
Jester01
veterán
Megint rakoncátlankodik az progim. Valamiert az ertekadásnál az i=0 , j=1 után hibával elszáll mintha nem lenne több memóriacím lefoglalva.
struct mezo{
int szin;
struct babuk *babu;
};
struct mezo*** init(int sor){
int i,j;
struct mezo ***t;
t=(struct mezo***)malloc(sor*sizeof(struct mezo**));
for (i=0;i<sor;i++) {
t[i]=(struct mezo**)malloc(sor*sizeof(struct mezo*));
}
for (i=0;i<sor;i++){
for (j=0;j<sor;j++) {
t[i][j]->szin=0;
t[i][j]->babu=NULL;
printf("i: %d j: %d\n",i,j);
}
};
return t;
}nem értem miért csinálja ezt velem.

Hát mert az elemeket nem foglaltad le egyáltalán.
-
[HUN]Zolee
őstag
Megint rakoncátlankodik az progim. Valamiert az ertekadásnál az i=0 , j=1 után hibával elszáll mintha nem lenne több memóriacím lefoglalva.
struct mezo{
int szin;
struct babuk *babu;
};
struct mezo*** init(int sor){
int i,j;
struct mezo ***t;
t=(struct mezo***)malloc(sor*sizeof(struct mezo**));
for (i=0;i<sor;i++) {
t[i]=(struct mezo**)malloc(sor*sizeof(struct mezo*));
}
for (i=0;i<sor;i++){
for (j=0;j<sor;j++) {
t[i][j]->szin=0;
t[i][j]->babu=NULL;
printf("i: %d j: %d\n",i,j);
}
};
return t;
}nem értem miért csinálja ezt velem.

-
sekli
addikt
Köszi szépen, PazsitZ neked is... es van valami lehetoseg, hogy megis legyenek nagy ekezetes betuk...? A DevC++-t nem nagyon szertetnem lecserelni, nem mintha nagyon jonak tartanam, csak mar nem nagyon van idom befelyezni, amin most munkalkodom...
-
Protezis
őstag
Előzmény (C++ topic):
DLL:
Üdv! Levelezőn kezdtem C-t tanulni és egy olyan kérdésem lenne hogy milyen függvénnyel lehet karaktert tesztelni, hogy az szám-e vagy betű-e (pl. ahova számot kér a progi ne lehessen kiakasztani betű beírásával.
getch(); esetén elvileg az ASCII kódtábla alapján lehet szűrni hogy csak a 0x30 és 0x39 közötti karaktereket (amik elvileg 0-9-ig a számok) engedje bevinni, de ha scanf( );-el kérek be adatot akkor hogyan lehet ezt megoldani?
Előre is köszönöm a segítséget!Jester01:
%[0-9]
De ez C nem C++
--------------------------------------------------------
Nos, ezt elvileg így gondoltad scanf("%[0-9]",&a); ? mert így elég fura dolgokat tesz az a-ba:int a;
main()
{
clrscr();
printf("szám beírása:");
scanf("%[0-9]",&a);
printf("eredmény: %d",a);
getch();
}bármilyen számot írok be egész más lesz belőle.
Bocs a noobságért tényleg nemrég kezdtem, és nincs is az hogy bemegyek hétfőn és megkérdezem a tanárt..
Egy lehetseges megoldas: atoi()
-
.DLL
veterán
Előzmény (C++ topic):
DLL:
Üdv! Levelezőn kezdtem C-t tanulni és egy olyan kérdésem lenne hogy milyen függvénnyel lehet karaktert tesztelni, hogy az szám-e vagy betű-e (pl. ahova számot kér a progi ne lehessen kiakasztani betű beírásával.
getch(); esetén elvileg az ASCII kódtábla alapján lehet szűrni hogy csak a 0x30 és 0x39 közötti karaktereket (amik elvileg 0-9-ig a számok) engedje bevinni, de ha scanf( );-el kérek be adatot akkor hogyan lehet ezt megoldani?
Előre is köszönöm a segítséget!Jester01:
%[0-9]
De ez C nem C++
--------------------------------------------------------
Nos, ezt elvileg így gondoltad scanf("%[0-9]",&a); ? mert így elég fura dolgokat tesz az a-ba:int a;
main()
{
clrscr();
printf("szám beírása:");
scanf("%[0-9]",&a);
printf("eredmény: %d",a);
getch();
}bármilyen számot írok be egész más lesz belőle.
Bocs a noobságért tényleg nemrég kezdtem, és nincs is az hogy bemegyek hétfőn és megkérdezem a tanárt..
-
_Kewr_
csendes tag
Ha valaki tudna nekem mondani egy jó leírást az ncurses használatáról, azt megköszöném.
-
Jester01
veterán
Helo,
Keresgeltem google-lal, de nem sikerult megtalalnom a nagy ekezetes betuk HEX ASCII kodjat....,
http://www.idevelopment.info/data/Programming/ascii_table/PROGRAMMING_ascii_table.shtml
ebben amik bennevannak a DevC++ -ban nem jok...
pl a kis 'é'-nek a kodja a DevC++-ban 0x82, ebben a listaban meg nem az van...ha valaki tudja, hogy hol vannak a jok, az ne tartsa magaban...
Mert az attól függ milyen kódlapot használsz. A devC++ nem tudom mit használhat, azok közül amiket hirtelen megnéztem egyikben sem a 0x82 az é betû.
-
[HUN]Zolee
őstag
-
PazsitZ
addikt
Helo,
Keresgeltem google-lal, de nem sikerult megtalalnom a nagy ekezetes betuk HEX ASCII kodjat....,
http://www.idevelopment.info/data/Programming/ascii_table/PROGRAMMING_ascii_table.shtml
ebben amik bennevannak a DevC++ -ban nem jok...
pl a kis 'é'-nek a kodja a DevC++-ban 0x82, ebben a listaban meg nem az van...ha valaki tudja, hogy hol vannak a jok, az ne tartsa magaban...
Nem tudom nekem egy ilyen táblázat [link] van a C könyvemben és nincs benne nagy ékezetes betű.
Ezalapján az é betű nálam is 0x82... -
sekli
addikt
Helo,
Keresgeltem google-lal, de nem sikerult megtalalnom a nagy ekezetes betuk HEX ASCII kodjat....,
http://www.idevelopment.info/data/Programming/ascii_table/PROGRAMMING_ascii_table.shtml
ebben amik bennevannak a DevC++ -ban nem jok...
pl a kis 'é'-nek a kodja a DevC++-ban 0x82, ebben a listaban meg nem az van...ha valaki tudja, hogy hol vannak a jok, az ne tartsa magaban...
-
Dead_slow
tag
Köszi mindkettőtöknek.
Kaptam egy feladatot amit nem tudok helyesen beírni, mindig hibás eredmény jön ki.
A feladat: n-edik gyök(x) et kell kiszámolni a következő iterációval :
( y(i+1) = (n-1)*y(i) + x / y(i)^(n-1) )/nitt tartok most :
include <stdio.h>
#include <math.h>
#include <malloc.h>
double fgv(int i){
double x=8;
const int n=3;
double k;
if (i<=1) return x;
k=((n-1)*fgv(i-1)+x/pow(fgv(i-1),n-1))/n;
printf("%d %lf\n",i,k);
return k;
}
int main(){
int k=3;
double p;
p=fgv(k);
printf("\n\n%lf",p);
return 0;
}mit baltáztam el?
HE-HE.
Én is ugyanazt a feladatot kaptam beadandónak, nagyon sokat segítettél
-
[HUN]Zolee
őstag
-
Jester01
veterán
Köszi mindkettőtöknek.
Kaptam egy feladatot amit nem tudok helyesen beírni, mindig hibás eredmény jön ki.
A feladat: n-edik gyök(x) et kell kiszámolni a következő iterációval :
( y(i+1) = (n-1)*y(i) + x / y(i)^(n-1) )/nitt tartok most :
include <stdio.h>
#include <math.h>
#include <malloc.h>
double fgv(int i){
double x=8;
const int n=3;
double k;
if (i<=1) return x;
k=((n-1)*fgv(i-1)+x/pow(fgv(i-1),n-1))/n;
printf("%d %lf\n",i,k);
return k;
}
int main(){
int k=3;
double p;
p=fgv(k);
printf("\n\n%lf",p);
return 0;
}mit baltáztam el?
Semmit, kicsi a k amivel hívod. 3 lépés kevés, próbáld hattal vagy többel.
-
[HUN]Zolee
őstag
Köszi mindkettőtöknek.
Kaptam egy feladatot amit nem tudok helyesen beírni, mindig hibás eredmény jön ki.
A feladat: n-edik gyök(x) et kell kiszámolni a következő iterációval :
( y(i+1) = (n-1)*y(i) + x / y(i)^(n-1) )/nitt tartok most :
include <stdio.h>
#include <math.h>
#include <malloc.h>
double fgv(int i){
double x=8;
const int n=3;
double k;
if (i<=1) return x;
k=((n-1)*fgv(i-1)+x/pow(fgv(i-1),n-1))/n;
printf("%d %lf\n",i,k);
return k;
}
int main(){
int k=3;
double p;
p=fgv(k);
printf("\n\n%lf",p);
return 0;
}mit baltáztam el?
-
PazsitZ
addikt
valaki meg tudná mondani nekem hogy a -> operátor mire jó pontosan?
(*U_mutato).nev
Az U_mutato-t a precedencia (elsőbbségi) szabály miatt kell zárójelbe tenni, mert ha nem tennénk a fordító azt hihetné, hogy ez egy U_mutato.nev változóra mutató pointer.
Mivel a C régi változatainak idejében elég gyakran volt szükség struktúra-mutatók használatára és kényelmetlen, zavaró volt minden egyes alkalommal zárójelezni, ezért kitaláltak egy új operátort, ez a -> (nyíl; egy mínusz jelből és egy ’nagyobb’ relációs jelből tevődik össze). Ennek használatával már nem kell zárójeleznünk:
U_mutato->nev
-
amargo
addikt
valaki meg tudná mondani nekem hogy a -> operátor mire jó pontosan?
cahar *p;
(*p).valami;
helyett elég a
p->valami; -
[HUN]Zolee
őstag
valaki meg tudná mondani nekem hogy a -> operátor mire jó pontosan?
-
Tv
senior tag
-
Lortech
addikt
Sziasztok! Egy kis segítségre volna szükségem C-ben. Egy olyan progit kellene írnom, ami bekér egy egész számot, majd egy ciklus kiíratja úgy, hogy első sorban annyiszor amennyi a szám, a másodikban egyel kevesebbszer stb. Valamint mindegyik szám mellé odarak egy betű karaktert. Tehát ha a számnak 5-öt adok meg akkor ezt adja:
5A5A5A5A5A
5A5A5A5A
5A5A5A
5A5A
5A
A progit meg is írtam már:
#include<stdio.h>int main(void)
{
int x;
char y=65;
int i,j;printf("Kerek egy szamot: ");
scanf("%d", &x);for(j=0; j<x; j++)
{
for(i=0+j; i<x; i++)
{
printf("%d%c", x, y);}
printf("\n");
}
}
A gond az lenne, hogy ezt függ vényként kéne működtetni. Eddig ennyire jutottam, de valamiér végtelenül írja ki a cuccokat:
#include<stdio.h>void kiirat(int a, char b)
{int i,j;
for(j=0; j<a; j++)
{
for(i=0+j; i<a; i++)
{
printf("%d%c", a, b);}
printf("\n");
}
}int main(void)
{
int x;
char y=65;printf("Kerek adjon meg egy egsz szamot: ");
scanf("%d", x);kiirat(x,y);
}
Ha valakinek van őtlete segítsen légyszi. Köszi előre isLemaradt a & a scanf-nél.
-
Tv
senior tag
Sziasztok! Egy kis segítségre volna szükségem C-ben. Egy olyan progit kellene írnom, ami bekér egy egész számot, majd egy ciklus kiíratja úgy, hogy első sorban annyiszor amennyi a szám, a másodikban egyel kevesebbszer stb. Valamint mindegyik szám mellé odarak egy betű karaktert. Tehát ha a számnak 5-öt adok meg akkor ezt adja:
5A5A5A5A5A
5A5A5A5A
5A5A5A
5A5A
5A
A progit meg is írtam már:
#include<stdio.h>int main(void)
{
int x;
char y=65;
int i,j;printf("Kerek egy szamot: ");
scanf("%d", &x);for(j=0; j<x; j++)
{
for(i=0+j; i<x; i++)
{
printf("%d%c", x, y);}
printf("\n");
}
}
A gond az lenne, hogy ezt függ vényként kéne működtetni. Eddig ennyire jutottam, de valamiér végtelenül írja ki a cuccokat:
#include<stdio.h>void kiirat(int a, char b)
{int i,j;
for(j=0; j<a; j++)
{
for(i=0+j; i<a; i++)
{
printf("%d%c", a, b);}
printf("\n");
}
}int main(void)
{
int x;
char y=65;printf("Kerek adjon meg egy egsz szamot: ");
scanf("%d", x);kiirat(x,y);
}
Ha valakinek van őtlete segítsen légyszi. Köszi előre is -
Nunder
őstag
köszi a linket! és itt tudok találni valakit aki segít vagy csak írjam be hogy kötprogforráskód kéne???
-
kicsitomi88
őstag
-
Nunder
őstag
ha nem vagy az se baj mert nekem télleg nagy szükségem volna mindennemű segítségre! télleg szokott itt olyasvalaki fórumozni aki szegedi? azokkal is szívesen felevenném a kapcsolatot

-
Nunder
őstag
csak nem te is SZTE-s vagy?? mert az nem volna rossz
-
kicsitomi88
őstag
Szevasztok! Az egyetemen (SZTE) most fogok írni köt.progból dogát. 10 programból egyet kell megírni az órán de parázok mert marha nehezek! Nincsenek túl nagy programozási háttérismereteim de szerintem ilyen guruknak nem lenne nehéz egyik sem!.Ha esetleg valakinek volna kedve és ideje velem foglalkozni az írjon és megbeszéljük.

Elotte egy ket nappal

-
Nunder
őstag
Szevasztok! Az egyetemen (SZTE) most fogok írni köt.progból dogát. 10 programból egyet kell megírni az órán de parázok mert marha nehezek! Nincsenek túl nagy programozási háttérismereteim de szerintem ilyen guruknak nem lenne nehéz egyik sem!.Ha esetleg valakinek volna kedve és ideje velem foglalkozni az írjon és megbeszéljük.
-
stepboy
csendes tag
-
[HUN]Zolee
őstag
t.c: In function ‘test’:
t.c:40: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘int *’
t.c:41: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘int *’Valamint a foglalás valóban rossz, ha már egyszer int-eket akarsz tárolni, akkor azoknak foglalj helyet, illetve ügyelj a pointerekre!
Diff:
--- t.c.orig 2007-11-20 16:48:48.000000000 +0100
+++ t.c 2007-11-20 16:59:32.000000000 +0100
@@ -8,24 +8,24 @@
int i,j;
- (*t)=(int***)malloc(sor*sizeof(char));
+ (*t)=(int***)malloc(sor*sizeof(int**));
for (i=0;i<sor;i++) {
- (*t)[i]=(int**)malloc(sor*sizeof(char));
+ (*t)[i]=(int**)malloc(sor*sizeof(int*));
}
for(i=0;i<sor;i++){
for (j=0;j<sor;j++){
printf("i:%d j:%d\n",i,j);
- (*t)[i][j]=(int*)malloc(2*sizeof(char));
+ (*t)[i][j]=(int*)malloc(2*sizeof(int));
}
}
for (i=0;i<sor;i++){
for (j=0;j<sor;j++) {
- t[i][j][0]=0;
- t[i][j][1]=0;
+ (*t)[i][j][0]=0;
+ (*t)[i][j][1]=0;
}
}
@@ -37,8 +37,8 @@
for (i=0;i<sor;i++) {
for (j=0;j<sor;j++) {
- printf("%d",t[i][j][0]);
- printf("%d",t[i][j][1]);
+ printf("%d",(*t)[i][j][0]);
+ printf("%d",(*t)[i][j][1]);
}
printf("\n");
}Köszi, fel sem tűnt hogy leírtam. mire meglesz a program érteni is fogom a pointereket

Mégegyszer kösz!

-
Jester01
veterán
üdv. Valaki fussa át ezt a pár sort valami nem ok a lefoglalással vagy nemtom mivel, mert felöltésnél elszall.
#include <stdio.h>
#include <malloc.h>
const N=8;
void init(int ****t,int sor){
int i,j;
(*t)=(int***)malloc(sor*sizeof(char));
for (i=0;i<sor;i++) {
(*t)[i]=(int**)malloc(sor*sizeof(char));
}
for(i=0;i<sor;i++){
for (j=0;j<sor;j++){
printf("i:%d j:%d\n",i,j);
(*t)[i][j]=(int*)malloc(2*sizeof(char));
}
}
for (i=0;i<sor;i++){
for (j=0;j<sor;j++) {
t[i][j][0]=0;
t[i][j][1]=0;
}
}
if (i==8) printf("vegeztem");
}
void test(int ****t,int sor){
int i,j;
for (i=0;i<sor;i++) {
for (j=0;j<sor;j++) {
printf("%d",t[i][j][0]);
printf("%d",t[i][j][1]);
}
printf("\n");
}
}
int main() {
int*** tabla;
init(&tabla,N);
test(&tabla,N);
scanf("");
return 0;
}t.c: In function ‘test’:
t.c:40: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘int *’
t.c:41: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘int *’Valamint a foglalás valóban rossz, ha már egyszer int-eket akarsz tárolni, akkor azoknak foglalj helyet, illetve ügyelj a pointerekre!
Diff:
--- t.c.orig 2007-11-20 16:48:48.000000000 +0100
+++ t.c 2007-11-20 16:59:32.000000000 +0100
@@ -8,24 +8,24 @@
int i,j;
- (*t)=(int***)malloc(sor*sizeof(char));
+ (*t)=(int***)malloc(sor*sizeof(int**));
for (i=0;i<sor;i++) {
- (*t)[i]=(int**)malloc(sor*sizeof(char));
+ (*t)[i]=(int**)malloc(sor*sizeof(int*));
}
for(i=0;i<sor;i++){
for (j=0;j<sor;j++){
printf("i:%d j:%d\n",i,j);
- (*t)[i][j]=(int*)malloc(2*sizeof(char));
+ (*t)[i][j]=(int*)malloc(2*sizeof(int));
}
}
for (i=0;i<sor;i++){
for (j=0;j<sor;j++) {
- t[i][j][0]=0;
- t[i][j][1]=0;
+ (*t)[i][j][0]=0;
+ (*t)[i][j][1]=0;
}
}
@@ -37,8 +37,8 @@
for (i=0;i<sor;i++) {
for (j=0;j<sor;j++) {
- printf("%d",t[i][j][0]);
- printf("%d",t[i][j][1]);
+ printf("%d",(*t)[i][j][0]);
+ printf("%d",(*t)[i][j][1]);
}
printf("\n");
} -
[HUN]Zolee
őstag
üdv. Valaki fussa át ezt a pár sort valami nem ok a lefoglalással vagy nemtom mivel, mert felöltésnél elszall.
#include <stdio.h>
#include <malloc.h>
const N=8;
void init(int ****t,int sor){
int i,j;
(*t)=(int***)malloc(sor*sizeof(char));
for (i=0;i<sor;i++) {
(*t)[i]=(int**)malloc(sor*sizeof(char));
}
for(i=0;i<sor;i++){
for (j=0;j<sor;j++){
printf("i:%d j:%d\n",i,j);
(*t)[i][j]=(int*)malloc(2*sizeof(char));
}
}
for (i=0;i<sor;i++){
for (j=0;j<sor;j++) {
t[i][j][0]=0;
t[i][j][1]=0;
}
}
if (i==8) printf("vegeztem");
}
void test(int ****t,int sor){
int i,j;
for (i=0;i<sor;i++) {
for (j=0;j<sor;j++) {
printf("%d",t[i][j][0]);
printf("%d",t[i][j][1]);
}
printf("\n");
}
}
int main() {
int*** tabla;
init(&tabla,N);
test(&tabla,N);
scanf("");
return 0;
}Ha valakit érdekel a hiba ez volt :
t[i][j][0]=0
helyett
(*t)[i][j][0]=0
kell
-
[HUN]Zolee
őstag
üdv. Valaki fussa át ezt a pár sort valami nem ok a lefoglalással vagy nemtom mivel, mert felöltésnél elszall.
#include <stdio.h>
#include <malloc.h>
const N=8;
void init(int ****t,int sor){
int i,j;
(*t)=(int***)malloc(sor*sizeof(char));
for (i=0;i<sor;i++) {
(*t)[i]=(int**)malloc(sor*sizeof(char));
}
for(i=0;i<sor;i++){
for (j=0;j<sor;j++){
printf("i:%d j:%d\n",i,j);
(*t)[i][j]=(int*)malloc(2*sizeof(char));
}
}
for (i=0;i<sor;i++){
for (j=0;j<sor;j++) {
t[i][j][0]=0;
t[i][j][1]=0;
}
}
if (i==8) printf("vegeztem");
}
void test(int ****t,int sor){
int i,j;
for (i=0;i<sor;i++) {
for (j=0;j<sor;j++) {
printf("%d",t[i][j][0]);
printf("%d",t[i][j][1]);
}
printf("\n");
}
}
int main() {
int*** tabla;
init(&tabla,N);
test(&tabla,N);
scanf("");
return 0;
} -
_Kewr_
csendes tag
Nagyon szépen köszönöm a segítséget!
-
Lortech
addikt
Akkor már majdnem célbaértél.
Kéne egy getch(); a refresh(); és az endwin(); közé, hogy lásd is az ncurses kimenetet:
...
refresh();
getch();
endwin();
...
Úrja kell fordítani, és úgy futtatni. -
_Kewr_
csendes tag
Most már semmi hibaüzenet, csak ennyi:
kewr@kewr-desktop:~$ ./filenev
kewr@kewr-desktop:~$ -
Lortech
addikt
A .c-n mit akarsz futtatni? Az a forráskódod (elvileg
). Azért írja ki, hogy hozzáférés megtagadva, mert nincs beállítva rá az x attribútum (futtatható). //de még egyszer mondom, egyébként sincs értelme futtatni, mert nem futtatható állomány, csak a forráskód."gcc filenev -o filenev.c -lncurses" még véletlenül sem jó, mert nem a filenev nevűt kéne fordítanod, hanem a filenev.c nevű forráskódodat a filenev nevű binárisba, azaz
gcc filenev.c -o filenev -lncurses, még egyszer: ahol filenev.c a forráskódod, filenev pedig az a fájlnév, amiben a lefordított programod szeretnéd látni.
Ezután futtatás ./filenev-vel.
Ha még így is hibaüzenet a válasz, akkor a hibaüzenetet másold be, mert anélkül nem tudok segíteni. -
_Kewr_
csendes tag
Az a gond, hogy hogy azt írja,hogy bash: ./filenev.c: Hozzáférés megtagadva. Ha pedig azt írom, hogy gcc filenev -o filenec.c -lncurses, akkor egy elég jelentős terjedelmű hibaüzenetet, amit nem tudok 100%-osan értelmezni.
-
Lortech
addikt
Ha lefordult rendesen, akkor úgy tudod indítani, ahogy írtad is. Ha nem írt semmi hibaüzenetet erre a parancsra, csak egy üres sor jelenik meg, akkor valószínűleg nem írtál ki semmit a programodban, azért nem ír ki semmit.
-
Lortech
addikt
Nah megvan, márcsak azt mondja meg valaki hogy miért fagy ki ez a program egyből miután elindítom? Fordításnál semmi hiba, függvény is elvileg jó! Akkor mi lehet a gond?

#include <stdio.h>
#include <string.h>void rendez(char **matrix)
{
int i, j;
char ideiglenes[20];for(i = 0; i < 10; i++)
for(j = 0; j < 10; j++)
{
if (strcmp(matrix[i], matrix[j]) < 0)
{
strcpy(ideiglenes, matrix[i]);
strcpy(matrix[i], matrix[j]);
strcpy(matrix[j], ideiglenes);
}
}
printf("\nRendezve: \n\n");
for(i = 0; i < 10; i++)
printf("%s\n",matrix[i]);}
int main(void)
{char *automarkak[10];
automarkak[0]="Mercedes";
automarkak[1]="Ferrari";
automarkak[2]="Audi";
automarkak[3]="Lada";
automarkak[4]="Chevrolet";
automarkak[5]="Ford";
automarkak[6]="Skoda";
automarkak[7]="Suzuki";
automarkak[8]="Opel";
automarkak[9]="Chrysler";rendez(automarkak);
}Minek utaztatod meg a stringeket?
Hiszen csak a char*-okra mutató pointereket kell kicserélni ahhoz, hogy **matrixban kialakuljon a helyes a sorrend:if (strcmp(matrix[i], matrix[j]) < 0)
{
char *sp = matrix[i];
matrix[i] = matrix[j];
matrix[j] = sp;
}De ha mégis úgy kéne, akkor pl :
#include <stdio.h>
#include <string.h>void rendez(char **matrix)
{
int i, j;
char ideiglenes[20]="";for(i = 0; i < 10; i++)
for(j = 0; j < 10; j++)
{
if (strcmp(matrix[i], matrix[j]) < 0)
{
strcpy(ideiglenes, matrix[i]);char *segedp;
segedp = (char *)realloc(matrix[i], strlen(matrix[j]) + 1);
matrix[i] = segedp;
strcpy(matrix[i], matrix[j]);segedp = (char *)realloc(matrix[j], strlen(ideiglenes) + 1);
matrix[j] = segedp;
strcpy(matrix[j], ideiglenes);
}
}
printf("\nRendezve: \n\n");
for(i = 0; i < 10; i++)
printf("%s\n",matrix[i]);}
int main(void)
{char *automarkak[10];
automarkak[0]=(char *)malloc(strlen("Mercedes") + 1);strcpy(automarkak[0], "Mercedes");
automarkak[1]=(char *)malloc(strlen("Ferrari") + 1);strcpy(automarkak[1], "Ferrari");
automarkak[2]=(char *)malloc(strlen("Audi") + 1);strcpy(automarkak[2], "Audi");
automarkak[3]=(char *)malloc(strlen("Lada") + 1);strcpy(automarkak[3], "Lada");
automarkak[4]=(char *)malloc(strlen("Chevrolet") + 1);strcpy(automarkak[4], "Chevrolet");
automarkak[5]=(char *)malloc(strlen("Ford") + 1);strcpy(automarkak[5], "Ford");
automarkak[6]=(char *)malloc(strlen("Ferrari") + 1);strcpy(automarkak[6], "Skoda");
automarkak[7]=(char *)malloc(strlen("Suzuki") + 1);strcpy(automarkak[7], "Suzuki");
automarkak[8]=(char *)malloc(strlen("Opel") + 1);strcpy(automarkak[8], "Opel");
automarkak[9]=(char *)malloc(strlen("Chrysler") + 1);strcpy(automarkak[9], "Chrysler");rendez(automarkak);
} -
_Kewr_
csendes tag
Köszönöm az eddigi segítséget, már csak egy kérdésem van. Milyen parancsal tudom futattni? Mert nem történik semmi amikor bepötyögöm a ./filenev-et.
-
Steve-S
tag
Nah megvan, márcsak azt mondja meg valaki hogy miért fagy ki ez a program egyből miután elindítom? Fordításnál semmi hiba, függvény is elvileg jó! Akkor mi lehet a gond?

#include <stdio.h>
#include <string.h>void rendez(char **matrix)
{
int i, j;
char ideiglenes[20];for(i = 0; i < 10; i++)
for(j = 0; j < 10; j++)
{
if (strcmp(matrix[i], matrix[j]) < 0)
{
strcpy(ideiglenes, matrix[i]);
strcpy(matrix[i], matrix[j]);
strcpy(matrix[j], ideiglenes);
}
}
printf("\nRendezve: \n\n");
for(i = 0; i < 10; i++)
printf("%s\n",matrix[i]);}
int main(void)
{char *automarkak[10];
automarkak[0]="Mercedes";
automarkak[1]="Ferrari";
automarkak[2]="Audi";
automarkak[3]="Lada";
automarkak[4]="Chevrolet";
automarkak[5]="Ford";
automarkak[6]="Skoda";
automarkak[7]="Suzuki";
automarkak[8]="Opel";
automarkak[9]="Chrysler";rendez(automarkak);
} -
Steve-S
tag
Hi mindenkinek! Újabb kérdésem lenne. Egy olyan függvényt kell írnom ami egy előreinicializált mátrixot(ékezet nélküli szavakkal töltöm fel), névsor szerint rendez. Az algoritmus meg a lényeg megvan, de úgy kell csinálni hogy a fgv paramétere char ** típusú legyen. Na most ezt kellene nekem elmagyarázni hogy ez a dupla csillagos modszer hogy működik, pl. hogy hogy töltöm fel így a mátrixot ha ilyen típussal kell, mert ez sem sikerült még. Lehet kicsit láma kérés de nem igazán vágom. Ha valaki elmagyarázná jó lenne.
Köszi! -
Tv
senior tag
Köszönöm a válaszokat mindenkinek! Mostmár kezdem érteni a dolgot

-
doc
nagyúr
Most vagy én vagyok macisajt vagy.. a többiek nem értettek meg.
Tv ha jól értem az nem világos számodra, mi a fenéért kell a main nak int visszatérési típus, nos én azzal az egyszerű dologgal tudnám magyarázni, hogy bármikor megtud szakítani a futását a programodna.
szerk:
Amint látom doc írta, csak a végéna program megszakításához nem kell a visszatérési érték, sőt még return sem feltétlenül, bár tény hogy úgy illik

-
dabadab
titán
Ismét köszönöm, de még azt mindig nem tudom, hogy mikor milyen visszatérési értéket kell választani. Eddig ami programokat írtam mindig int main(void)-ot használtam, tehát int-el tér vissza. Milyen proginál van például, hogy nincs visszatérési érték? Ha nem akarok pl. kiíratni semmi eredményt? Tehát a progi csinálja a dolgát, de az eredményt nem kérem ki? Sorry, ha nagyon értetlen vagyok

A main() az definicio szerint int-et ad vissza, ez eppen olyan resze a C specifikacionak, mint az, hogy az utasitasok vegere pontosvesszo kell.
Tortenelmileg onnan ered a dolog, hogy UNIX-on (de egyebkent ez jelenleg is igy van gyak. minden OS-nel, amivel talalkozhatsz) a programoknak van egy u.n. visszateresi erteke, ami egy egyszeru integer. Ennek GUI-s, interaktiv programoknal tul sok szerepe nincs, viszont olyan esetekben, amikor pl. scriptbol hiv meg az ember programokat, nagyon hasznos: ugyanis ezt szokas annak jelzesere hasznalni, hogy a program jol futott-e le v tortent vmi hiba. A konvencio az, hogy ha nincs gond, akkor a visszateresi ertek 0, ha pedig van, akkor nem nulla (a konkret ertekek es jelenteseik program-specifikusak mar).
Egyszeruen osszefoglalva: ha a programod szepen lefut, akkor egy "return 0" kell, ha meg vmi hiba miatt szakad meg a futasa, akkor meg -1 (ezt szoktak altalanos "problema van" ertekkent hasznalni) legyen a main() altal visszaadott ertek.
-
PazsitZ
addikt
Ismét köszönöm, de még azt mindig nem tudom, hogy mikor milyen visszatérési értéket kell választani. Eddig ami programokat írtam mindig int main(void)-ot használtam, tehát int-el tér vissza. Milyen proginál van például, hogy nincs visszatérési érték? Ha nem akarok pl. kiíratni semmi eredményt? Tehát a progi csinálja a dolgát, de az eredményt nem kérem ki? Sorry, ha nagyon értetlen vagyok

Ahogy írják visszatérési érték mindig van. Legfeljebb nem használod, veszed figyelembe. A hibátlan élefutás 0val tér vissza. Úgy tudom az oprendszer a futtatás során igényli is a visszatérési értéket
-
amargo
addikt
Most vagy én vagyok macisajt vagy.. a többiek nem értettek meg.
Tv ha jól értem az nem világos számodra, mi a fenéért kell a main nak int visszatérési típus, nos én azzal az egyszerű dologgal tudnám magyarázni, hogy bármikor megtud szakítani a futását a programodna.
szerk:
Amint látom doc írta, csak a végén -
doc
nagyúr
Ismét köszönöm, de még azt mindig nem tudom, hogy mikor milyen visszatérési értéket kell választani. Eddig ami programokat írtam mindig int main(void)-ot használtam, tehát int-el tér vissza. Milyen proginál van például, hogy nincs visszatérési érték? Ha nem akarok pl. kiíratni semmi eredményt? Tehát a progi csinálja a dolgát, de az eredményt nem kérem ki? Sorry, ha nagyon értetlen vagyok

visszatérési érték minden programnál van, a main típusa int
de ha nem akarsz visszatérési értéket használni, akkor nem használod
ilyenkor ha jól tudom, sima 0-val tér vissza
ha mást akarsz, akkor teszel bele pl. egy return 3; sort, ott a program futása megszakad és a shell amiből indítottad egy 3-as értéket kap -
kicsitomi88
őstag
Ismét köszönöm, de még azt mindig nem tudom, hogy mikor milyen visszatérési értéket kell választani. Eddig ami programokat írtam mindig int main(void)-ot használtam, tehát int-el tér vissza. Milyen proginál van például, hogy nincs visszatérési érték? Ha nem akarok pl. kiíratni semmi eredményt? Tehát a progi csinálja a dolgát, de az eredményt nem kérem ki? Sorry, ha nagyon értetlen vagyok

Nem vagy ertetlen, de tokmindegy szamodra h int vagy void, hidd el

A progi szamodra ugyanolyan lesz.
-
Tv
senior tag
int main(void)nal is int a visszateresi ertek csak ures az argumentumlista,(void)
void main()-nal nem lenne visszateresi ertek,Ismét köszönöm, de még azt mindig nem tudom, hogy mikor milyen visszatérési értéket kell választani. Eddig ami programokat írtam mindig int main(void)-ot használtam, tehát int-el tér vissza. Milyen proginál van például, hogy nincs visszatérési érték? Ha nem akarok pl. kiíratni semmi eredményt? Tehát a progi csinálja a dolgát, de az eredményt nem kérem ki? Sorry, ha nagyon értetlen vagyok

-
kicsitomi88
őstag
Köszi a választ, de én azt nemértem hogy mit is jelent maga a main fv. visszatérési értéke. Eddig mindenki azt mondta hogy használjak int main(void)-ot például és kész. Megmagyarázni eddig senki nem tudta, hogy miért ezt vagy miért azt válasszam. Szóval a kíváncsiság hajt, hogy mi a különbség, ha pl. int a mainfv. visszatérési értéke, vagy ha nem adok neki (void).
int main(void)nal is int a visszateresi ertek csak ures az argumentumlista,(void)
void main()-nal nem lenne visszateresi ertek, -
Tv
senior tag
Ha nem írsz visszatérési érték típust akkor automatikusan INT, tehat olyan mint ha int main() lenne.
Megszokáw szerint ki kell írni blabla, de csak akkor szol erte asszem ha -wall -al forditasz.
Köszi a választ, de én azt nemértem hogy mit is jelent maga a main fv. visszatérési értéke. Eddig mindenki azt mondta hogy használjak int main(void)-ot például és kész. Megmagyarázni eddig senki nem tudta, hogy miért ezt vagy miért azt válasszam. Szóval a kíváncsiság hajt, hogy mi a különbség, ha pl. int a mainfv. visszatérési értéke, vagy ha nem adok neki (void).
-
kicsitomi88
őstag
Ha nem írsz visszatérési érték típust akkor automatikusan INT, tehat olyan mint ha int main() lenne.
Megszokáw szerint ki kell írni blabla, de csak akkor szol erte asszem ha -wall -al forditasz.
-
Tv
senior tag
Szeva mindenki! Egy alapvető dologgal nem vagyok tisztában. Ez pedig a main függvény visszatérési értéke. Én minden proginál "int main(void)"-ot használok, de vannak akik "main()"-t, stb. használnak. Mikor melyiket érdemes, illetve egyáltalán mi a különbség köztük?

-
Lortech
addikt
-
_Kewr_
csendes tag
És ha nem használok semmit, akkor mit írjak be, ha pl valami.c-t szeretném lefordítani?
-
doc
nagyúr
-
_Kewr_
csendes tag
Most épp Anjuta-t használok.
-
doc
nagyúr
mivel fordítasz? simán parancssorból gcc-vel? mert akkor a topictársak által említett kapcsolót a gcc parancssorához kell írni
ha vmi ide-vel, akkor meg a linker options-nál szokás megadni -
_Kewr_
csendes tag
Eléggé kezdő vagyok, úgyhogy elnézést az értetlenségem miatt, de ezt elmondanád mégegyszer?
-
Lortech
addikt
Köszönöm a segítséget. De Most ujabb gondom adódott, egy egyszerűbb kódra, konkrétan erre:
#include <ncurses.h>int main () {
initscr ();
printw ("Hello Vilag !!!");
refresh ();
endwin ();
return 0;
}Ezt a hibaüzenetet kapom:
valami.c
.text+0x12): undefined reference to `initscr'
valami.c
.text+0x1e): undefined reference to `printw'
valami.c
.text+0x23): undefined reference to `stdscr'
valami.c
.text+0x2b): undefined reference to `wrefresh'
valami.c
.text+0x30): undefined reference to `endwin'
collect2: ld returned 1 exit statusIgen, most kéne akkor linkelni a ncursest.
Lásd kettővel feljebb -lncurses. -
_Kewr_
csendes tag
Köszönöm a segítséget. De Most ujabb gondom adódott, egy egyszerűbb kódra, konkrétan erre:
#include <ncurses.h>int main () {
initscr ();
printw ("Hello Vilag !!!");
refresh ();
endwin ();
return 0;
}Ezt a hibaüzenetet kapom:
valami.c
.text+0x12): undefined reference to `initscr'
valami.c
.text+0x1e): undefined reference to `printw'
valami.c
.text+0x23): undefined reference to `stdscr'
valami.c
.text+0x2b): undefined reference to `wrefresh'
valami.c
.text+0x30): undefined reference to `endwin'
collect2: ld returned 1 exit status -
doc
nagyúr
-lncurses mikor forditasz? ugy sem?
korábban van a baj, már az ncurses.h-t sem találja, szerintem nincs felrakva az ncurses csomag
sudo apt-get install ncurses ncurses-dev(vagy curses és curses-dev, most Slackware előtt ülök
)
Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Eladó teljesen újszerű karcmentes Samsung Galaxy Watch Ultra
- DDR4 memóriák eladóak
- Hihetetlen Gaming PC brutális specifikációkkal! A dán Topdata.dk IT-cég által összerakva
- 2.5" 100% noti HDD-k Western Digital, Seagate 320Gb (3k) +1Tb (15k) van 1db SSHD is (15k)
- Lenovo P16s gen2 16" //Core i7 1360P // Nvidia RTX A500 4GB GDDR6 // 16Gb /512GB SSD/ gyári garancia
- HP ProDesk 600 G4 USDT,Pentium Gold G5400T,8GB DDR4,256GB M2 SSD,WIN11
- Gamer PC-Számítógép! Csere-Beszámítás! R5 5600XT / RTX 3070 / 16GB DDR4 / 512GB Nvme SSD
- HP Elite Mini 600 G9 PC! i5-12500T / 32GB DDR5 4800MHz / 512GB NVMe
- 27% - ASUS ROG Strix XG27ACS Monitor! 2560x1440 / 1ms / 180Hz / G-Sync / FreeSync
- AKCIÓ! 2TB Kingston Fury Renegade NVMe SSD meghajtó garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


. Nekem is csak úgy beugrott, mikor mondtad a sorvéges dolgot, hogy van valami $ jeles dolog is
. Mondom kipróbálom nincs mit veszteni, erre jó is lett egyből, minden működik ahogy kell. Az volt a gáz, hogy xp alatt írtam a progit, ment is jól, aztán ftp-n feltöltöttem linux-ra, és ott putty-on át akartam volna fordítani, futtatni. 

minygyárt megőrülök. A progit megírtam, működik is rendesen windóz alatt, de linux-on az istennek se akar. Vetnétek rá egy pillantást lécci? Fontos lenne
. Köszi előre is. A gond valahol a sztringek összehasonlításánál lehet.
az bizony lehet. Akkor itt lesz a gond: while (fgets(buff,1024,f1)) . Vagyis ezt a ciklust kellene kibővíteni? Ebbe kellene beletennem a vizsgálatot, meg a második fájl-ba való írást?

Mit ronthattam el?


Rám is vár egy zh pótlás és egy vizsga is, (csak nekünk ott adják ki a feladatot..) :\
). Azért írja ki, hogy hozzáférés megtagadva, mert nincs beállítva rá az x attribútum (futtatható). //de még egyszer mondom, egyébként sincs értelme futtatni, mert nem futtatható állomány, csak a forráskód.


