Új hozzászólás Aktív témák
-
shinodas
tag
Úúú de ökör vagyok!
Köszönöm! -
shinodas
tag
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int main()
{
int fd;
unsigned char nev[20];
fd=open("nev.txt",O_CREAT|O_RDWR,0xffff);
write("Peti", 5);
lseek(fd,0,SEEK_SET);
read(fd,"nev.txt",5);
printf("%s",nev);
close(fd);
return 0;
}Sziasztok, ezt szeretném futtatni, de mikor debuggolnám, akkor megnyit egy másik header fájlt.
a unistd.h-t nyitja meg. Ahelyett, hogy beduggolna rendesen...miért van ez?
szerk.: codeblocksban
-
shinodas
tag
warning:gdb:failed to set controlling terminal
peration not permitted
erre a hibaüzenetre valaki tud valamit? nem enged debuggolni normálisan :S -
shinodas
tag
Sziasztok!
int main()
{
char tomb[144];
int i=0;
char a=0;
while(i<145)
{
if(a>'A' && a<'z')
{
tomb[i]==a;
i++;
a++;
}
else{
a++;
}
}
return 0;
}
Azt szeretném elérni, hogy az ascii táblából az A és a z karakterek közti elemeket tegye be egy tömbbe. A tomb==a-ra nem tudom miért írja, hogy semmilyen hatása nincs, mármint, nem értem miért nem jó. És ezt a hibát is dobja "warning:gdb:failed to set controlling terminal: operation not permitted" Ubuntu alatt, codeblocksban. -
shinodas
tag
Köszönöm a válaszokat!
-
shinodas
tag
válasz
Jester01 #3339 üzenetére
Én arra lennék kíváncsi, hogy pl van egy *p pointerem, és egy tomb[10] tömböm. Beállítom, hogy p=tomb, megkapja a kezdőcímét a tömbnek, a pointer, ha jól tudom. De nem tudom, hogy konkrétan, hogyan néz ki az a kifejezés, aminél a pointert a kezdő címére állítom vissza. Egy saját függvényben, ahol csak a pointert "látom", a tömbböt nem, ott nem tudom.
Mit javasolnál ehelyett az algoritmus helyett?
-
shinodas
tag
Sziasztok!
Adott két tömb, amelyeket szeretnék összehasonlítani. Megszeretném számolni a két tömbben hány elem értéke egyezik meg. Ez megy is, örülök is neki, de szeretném pointerekkel ugyanezt. Ugye az elmélet az az, hogy veszi az egyik tömb 0. elemét, majd végig pörgeti a másik tömbbön, van e egyezés. Ha van, akkor növel egy számlálót, és az első tömb következő eleméhez lép. Persze ilyenkor a másik tömb 0. eleménél folytatná a következő körben. Na ez az ami nem megy, pointerekkel, hogyan mondom meg a pointernek, hogy "te most nullázad le magad!"?
-
shinodas
tag
A voidos és a (*pointer)++ kombináció megoldotta a probllémát! Nagyon szépen köszönöm!
Arról tudnátok néhány mondatot mondani, hogy, ha void van, akkor mi történik?
-
shinodas
tag
válasz
Jester01 #3320 üzenetére
Jester01: Tudom, hogy nem minden mássalhangzó, itt most csak ez a pointeres dolog lett volna a lényeg.
Egyébként a hibaüzenetek alapján próbálok elindulni, csak annyira kezdő vagyok, hogy valamikor nem mond semmit nekem.
(*magan_p)++; ezt nem is tudtam pl, köszönömkingabo: A voidot kipróbálom, ezt sem gondoltam volna.
Egyébként szerintem ez a probléma, hogy csak úgy magamtól, netről próbálom tanulni, nincs egy könyvem, ami alapján haladhatnék. :S
Köszönöm a válaszokat /tippeket! Este beszámolok, mire jutottam
-
shinodas
tag
Ennek így nem kellene vissza adni az értéket rendesen?
#include <stdio.h>
#include <stdlib.h>
int massal_magan (char result[], int *magan_p, int *massal_p);
int main()
{
char string1[10];
char string2[10];
char result[20];
int i=0;
int r=0;
int maganhangzo=0;
int massalhangzo=0;
int *magan_p=0;
int *massal_p=0;
magan_p = &maganhangzo;
massal_p = &massalhangzo;
printf("Kérem adjon meg egy szót!\n");
scanf("%s", string1);
printf("Kérem adjon meg egy újabb szót!\n");
scanf("%s", string2);
//kis és nagybetűs átalakítás
for(i=0;string1[i]!='\0';i++)
{
if(string1[i]>=65 && string1[i]<=90)
{
string1[i]=string1[i]+32;
}
}
string1[0]=string1[0]-32;
for(i=0;string2[i]!='\0';i++)
{
if(string2[i]>=65 && string2[i]<=90)
{
string2[i]=string2[i]+32;
}
}
string2[0]=string2[0]-32;
i=0;
//összefűzés
while(string1[i]!='\0')
{
result[r]=string1[i];
r++;
i++;
}
result[r++]=' ';
i=0;
while(string2[i]!='\0')
{
result[r++]=string2[i];
i++;
}
result[r]='\0';
printf("Az összefűzött string: %s\n", result);
massal_magan(result, magan_p, massal_p);
printf("Mássalhangzók száma: %d\n", *massal_p);
return 0;
}
//SAJÁT FÜGGVÉNYEK
int massal_magan(char result[], int *magan_p, int *massal_p)
{
int i=0;
while(result[i]!='\0')
{
switch(result[i])
{
case 'a':
case 'e':
case 'o':
case 'i':
case 'u':
case 'A':
case 'E':
case 'O':
case 'I':
case 'U':
*magan_p++;
break;
default:
*massal_p++;
break;
}
i++;
}
return *magan_p;
return *massal_p;
}Mert olyan, mintha nem adná vissza...
Esetleg tudtok mutatni egy leírást, hogy ne itt kérdezzek hülyeségeket?Konkrétan erre a problémára nem találtam a google-ben választ, bár biztos van, csak rossz helyen keresem
-
shinodas
tag
Sziasztok! Kellemes pénteket mindenkinek!
Remélem nem probléma, hogy rengeteg kérdésem van, szóval itt egy újabb.
#include <stdio.h>
#include <stdlib.h>
int massal_magan (char result[], int *magan, int *massal);
int main()
{
char string1[10];
char string2[10];
char result[20];
int i=0;
int r=0;
int *magan=0;
int *massal=0;
printf("Kérem adjon meg egy szót!\n");
scanf("%s", string1);
printf("Kérem adjon meg egy újabb szót!\n");
scanf("%s", string2);
//kis és nagybetűs átalakítás
for(i=0;string1[i]!='\0';i++)
{
if(string1[i]>=65 && string1[i]<=90)
{
string1[i]=string1[i]+32;
}
}
string1[0]=string1[0]-32;
for(i=0;string2[i]!='\0';i++)
{
if(string2[i]>=65 && string2[i]<=90)
{
string2[i]=string2[i]+32;
}
}
string2[0]=string2[0]-32;
i=0;
//összefűzés
while(string1[i]!='\0')
{
result[r]=string1[i];
r++;
i++;
}
result[r++]=' ';
i=0;
while(string2[i]!='\0')
{
result[r++]=string2[i];
i++;
}
result[r]='\0';
printf("Az összefűzött string: %s\n", result);
massal_magan(result, *magan, massal);
return 0;
}
//SAJÁT FÜGGVÉNY
int massal_magan(char result[], int *magan, int *massal)
{
int i=0;
while(result[i]!='\0')
{
switch(result[i])
{
case 'a':
case 'e':
case 'o':
case 'i':
case 'u':
case 'A':
case 'E':
case 'O':
case 'I':
case 'U':
*magan++;
break;
default:
*massal++;
break;
}
i++;
}
return *magan, *massal;
}A gondom az értékátadással van, hogy megakarom számoltatni, a magán és mással hangzókat, ezeknek az értékét pedig pointerekkel visszaadni. Hogyan kellene ezt helyesen? A másik kérdésem pedig, hogy Mikor számolom a magánhangzókat, az ékezetes karakterekre hibát dob, mármint, pl case 'é'-re, gondolom valami kódolási gubanc, ezt hogyan lehetne kiküszöbölni?
Btw, itt főleg a 3. sorral van gondja a fordítónak, a függvénydeklarációnál -
shinodas
tag
Egy olyan kérdésem lenne, hogy, ha írok egy sajátfüggvényt, és az két értéket adna vissza, mikor meghívom a függvényemet, azt meghívásnál, hogy néz ki? Tehát pl return x,y; és ezt meghívásnál, hogy jelölöm, ha adott résznél nekem csak az x változó kéne ott? Remélem nem túl zavarosan fogalmazok, ha mégis, akkor bocsi
-
shinodas
tag
#include <stdio.h>
#include <stdlib.h>
int main()
{
char string1[10];
char string2[10];
char result[20];
int r=0, n=0;
printf("Kérek egy szót!\n");
scanf("%s",string1);
printf("Kérek egy szót!\n");
scanf("%s",string2);
for(n=0;string1[n]!='\0';n++)
{
result[r]=string1[n];
r++;
}
result[r++]=' ';
for(n=0;string2[n]!='\0';n++)
{
result[r]=string2[n];
r++;
}
result[r]='\0';
printf("%s", result);
return 0;
}Működik, én voltam a balf@sz
Köszi mindenkinek!
-
shinodas
tag
Sziasztok!
Írtam gyakorlásnak egy ilyen kis egyszerű dolgot, amit el akartam érni: kérjen be két szót, tárolja 2 stringbe, majd egy harmadikba fűzze össze a kettőt. A problémám, hogy a két szó közé akarnék egy spacet beerőltetni, de nem akar működni úgy. Mit nézek el?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char string1[10];
char string2[10];
char result[20];
int r=0, n=0;
printf("Kérek egy szót!\n");
scanf("%s",string1);
printf("Kérek egy szót!\n");
scanf("%s",string2);
for(n=0;string1[n]!='\0';n++)
{
result[r]=string1[n];
r++;
}
for(n=0;string2[n]!='\0';n++)
{
result[r]=string2[n];
r++;
}
r++;
result[r]='\0';
printf("%s", result);
return 0;
} -
shinodas
tag
Srácok tudtok ajánlani érdekes oldalakat, ahol tutorialok, példák, érdekes feladatok stb van C témakörben?
-
shinodas
tag
Köszönöm szépen, nagyon korrekt válaszok!
-
shinodas
tag
srand(time(NULL));
x=rand()%9;Egy programban használok egy ilyen random szám generálást, de ezt csak úgy neten találtam. Elmondanátok, hogyan működik ez pontosan?
-
shinodas
tag
#include <stdio.h>
#include <stdlib.h>
int main()
{
char cel[10];
char S1[6]="iskola";
int i=0;
while(S1[i]!='\0');
{
cel[i]=S1[i];
i++;
}
cel[i++]='\0';
printf("%s\n", cel);
return 0;
}Ezt hol szúrom el srácok? Azt próbálgatom, hogy van egy üres, és egy másik stringem, amiben van valami. Amiben van a tartalom, azt akarom belemásolni a másik stringbe.
-
shinodas
tag
Köszönöm srácok a válaszokat!
-
shinodas
tag
Sziasztok srácok,
egy kis érdekességbe ütköztünk prog vizsgán.Szóval, ha elosztotok két számot
pl float a=50.5; float b=a/10;, akkor az eredmény 5.050000190734... lesz. SZóval így kíváncsiak lennénk, hogy hogyan lehetne pontosabban osztani? -
shinodas
tag
Én valahogy így csináltam, még próbálgatom, h jól működik e
while(j<6)
{
if(i==5){i=0; j++;}
if(tomb[i]==tomb_user[j])
{printf("E " );
i=0;
j++;
}
else
{
i++;
}
} -
shinodas
tag
Bocsi, ha nagyon kezdő kérdés, de, hát kezdő is vagyok
while(j<6 && i<6 )
{
if(tomb[i]==tomb_user[j])
{
printf("Valami... " );
i=0;
j++;
}
else
{
i++;
}
}
Az lenne a célom, hogy nézze meg, a tomb user elemei között, hány olyan elem van, ami megegyezik tom elemeivel. Ha egyezés van, írjon ki valamit. És nem igazán szeretne ez muzsikálni nekemszerk.: azt hiszem működik már. Megoldva! Most rohanok órára, aztán még kipróbálom alaposabban
-
shinodas
tag
Sziasztok!
Egy egyszerű kis programocskát írok, és lenne egy olyan problémám, hogy van két tömbböm, össze akarom hasonlítani őket, egy ciklusban. Az egyes elemeket. Na, szóval 6 elemű a tömb, de csak 5 elemet akar nekem vizsgálni. A tömbbök jól vannak feltöltve, és már ötletem elfogyott, valaki segítsen mán ki
#include <stdio.h>
#include <stdlib.h>
int main()
{
int tomb_user[5]; //tomb_user tippje tömbbe alakítva
int tipp=0; //tomb_user tippje
int i=0; // tömb indexek
int j=0;
srand(time(NULL)); //random számhoz kell
int tomb[5]; //random számokat ide töltöti
while(i<6) //feltöltöm a tömbböt
{
tomb[i]=rand()%9; //%9 az a limit
i++;
}
for(i=0;i<6;i++) printf("%d ", tomb[i]);
//adatok bekérése
printf("Kerek egy tippet, hat darab szamot: ");
scanf("%d", &tipp);
if(tipp>999999){
printf("Hat szamjegyet adjon meg!\n");
printf("Kerek egy tippet, hat darab szamot: ");
scanf("%d", &tipp);
}
//user tipp tombbe alakítása
tomb_user[0]=tipp/100000;
tomb_user[1]=tipp%100000/10000;
tomb_user[2]=tipp%100000%10000/1000;
tomb_user[3]=tipp%100000%10000%1000/100;
tomb_user[4]=tipp%100000%10000%1000%100/10;
tomb_user[5]=tipp%100000%10000%1000%100%10;
//===megvizsgálom az egyes elemeket
printf("\nTalálat: ");
i=j=0;
for(i=0;i<6;i++)
{
if(tomb[i]==tomb_user[j]) {printf("H " );}
j++;
}
return 0;
}
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- PlayStation 4/5 kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- PlayStation 5/4 kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- XBOX ONE/Series kontroller analóg cseréje HALL TMR érzékelősre, 1 év garancia!!! Nincs többé drift!!
- XBOX Series S 512GB, 6 hó garanciával Bp-i üzletből eladó!
- Dell Latitude 5400 / i5-8365u / 8Gb DDR4 / 256Gb SSD / FHD IPS / Excellent akku
- Hp USB-C/Thunderbolt 3 dokkolók: USB-C Universal, G2, G4, G5, Hp Elite/Zbook- Thunderbolt 4 G4
- AKCIÓ! Gigabyte B450M R7 2700X 16GB DDR4 512GB SSD RX VEGA64 8GB CM 690 III FSP 600W
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
- LG 27UL500-W - 27" IPS - 3840x2160 4K - 60Hz 5ms - HDR10 - AMD FreeSync - 300 Nits - sRGB 99%
- Telefon felvásárlás!! Apple Watch Series 9/Apple Watch Ultra/Apple Watch Ultra 2
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged