Új hozzászólás Aktív témák
-
TheRolf
csendes tag
Sziasztok! C-ben meg lehet olyat oldani, hogy bekér N és M-t, majd egy NxM-es mátrix elemeit is, de soronként, tehát ne kelljen NxM darab entert nyomni, csak annyit, ahány sor van; magyarul a scanf(" ") belsejében meg tudom-e valamilyen módon adni, hogy hány %d-t kérjen be?
Köszi előre is! -
-
Rickazoid
addikt
válasz chabeee #2908 üzenetére
Nálam először -1 hibakódot dobott a Code::Blocks, aztán rájöttem, hogy nincs bemenet.txt fájl. Erre nem írsz egy ellenőrzést, hogy ilyenkor se hibával lépjen ki? Ha jól gondolom ez iskolai feladat, oda nem árt ilyesmit beleírni, hátha beleköt a tanár (persze lehet nem, te ismered jobban). De egyébként is jobb (főleg később), ha az ember úgy írja a programjait, hogy hibánál (már amelyiket előre meg lehet jósolni) figyelmeztessen rá, "szóljon", hogy mi a gond.
[ Szerkesztve ]
Erkölcstelen csíkot húzni a másik krumplifőzelékébe csak azért, hogy legyen egy szünet.
-
-
chabeee
tag
válasz WonderCSabo #2914 üzenetére
igen ennel a feladatsornal jo
-
chabeee
tag
hali!
dog kutya
donkey szamar
content tartalom
apple alma
good jo
diamond gyemantEzeket a szópárokat szeretném abc sorrendbe rendezni angol szavak alapján, milyen módon lehetne ezt véghez vinni?
-
Jester01
veterán
válasz chabeee #2916 üzenetére
Rengeteg módon. Például csinálsz egy struct-ot amiben benne van a magyar és az angol szó. Ezután qsort hívással, a megfelelő összehasonlító függvény megadásával, berendezed:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct entry
{
const char* eng;
const char* hun;
};
static int compare_entries(const void* a, const void* b)
{
const struct entry* e1 = a;
const struct entry* e2 = b;
return strcmp(e1->eng, e2->eng);
}
int main()
{
struct entry words[] = {
{ "dog", "kutya" },
{ "donkey", "szamar" },
{ "content", "tartalom" },
{ "apple", "alma" },
{ "good", "jo" },
{ "diamond", "gyemant" }};
const int count = sizeof words / sizeof words[0];
int i;
qsort(words, count, sizeof words[0], compare_entries);
for(i = 0; i < count; ++i)
{
printf("%s %s\n", words[i].eng, words[i].hun);
}
return 0;
}Jester
-
dany27
őstag
Sziasztok!
GTK segítségével készítek egy alkalmazást.
Egy olyan kérdésem lenne hogy a szöveg beviteli mezőből kinyert szöveget milyen adat típusba tudom belepakolni?Mert ezért reklamál:
char test[100];test=gtk_entry_get_text(GTK_ENTRY(szerzo));
előre is köszi!
-
Jester01
veterán
Szépen elbaktatsz a megfelelő headerbe és megnézed:
G_CONST_RETURN gchar* gtk_entry_get_text (GtkEntry *entry);Vagy nyilván a dokumentációban.
[ Szerkesztve ]
Jester
-
-
Sk8erPeter
nagyúr
Pont azt mondja a hibaüzenet (elég beszédes), hogy már definiálva van...
--> [link]és ha az alábbi módon próbálod?
GtkEntry *entry;
const gchar *test;
entry = GTK_ENTRY(szerzo);
test = gtk_entry_get_text(entry);(még nem használtam, csak az alapján gondolom, hogy így jó, ami a doksiban van, nem garantálom, de sanszos)
Szerk.: de épp így csinálják itt is: [link] (ebből a kódból gondolom amúgy is tudnál mintát venni)[ Szerkesztve ]
Sk8erPeter
-
addikt
Ez biztos hulye kerdes lesz, de van valahol egy osszefoglalo arrol, hogy mik a C-ben hasznalt "modosito" karakterek es melyik mire valo a kulonbozo szituaciokban?
Gondolok itt olyanokra, hogy:char *p
FILE be*
fscanf(stream, "%d%*[^\n]", &valtozo)
for(p=str;*p&&*p!=10;p++); *p=0;Ezek csak ilyen hirtelen kiragadott peldak, tudom, hogy magukban nincs sok ertelmuk, de remelem ertitek mire gondolok.
Mikor doksit keresgetek nem nagyon latom ezek jeloleset, csak altalanos leirast pl. a char tipusrol.
Peldakodokat nezegetve is mindig az a bajom, hogy nem vagom ezek mit csinalnak, ugy meg nehez megerteni.
Ha tudnatok ehhez egy jo linket ajanlani azt megkoszonnem. -
szkorhetz
őstag
Sziasztok!
Megnéznétek ezt nekem? ha esetleg valami hiba van, akkor javítást is nagyon szívesen fogadok, sőt örülnék is minden apró kis segítségnek is
#include<stdio.h>
#include <stdlib.h>struct egybe{
int a;
char c[92];
char sz[92];
};void feltoltc(egybe*, int sor);
void feltoltsz(egybe*, int sor);
void rendez(egybe*, int sor);
void rendezve();
void ujfilm();int main(){
int holsor = 0;
egybe tomb[92];
egybe sege[92];int azon;
int menu;bool vanilyen = false;
rendezve();
ujfilm();while(menu != 5) {printf("Fomenu:\nKerem valasszon egyet a kovetkezo menupontok kozul!\n\n1: Uj adat felvetele\n2: Modositas\n3: Kereses\n4: Lista\n5: Kilepes\n\n");
scanf("%d", &menu);switch(menu){
case 1: {
vanilyen = 0;
printf("Adja meg az azonositot: ");
scanf("%d", &azon);
if(!holsor){tomb[holsor].a = azon;}
for(int f = 0; f < holsor; f++){
if (tomb[f].a == azon){printf("Mar van ilyen azonosito!\n"); vanilyen = true; break;}
else {tomb[holsor].a = azon;}}if (vanilyen){break;}
printf("Adja meg a a film cimet: ");
feltoltc(sege,holsor);
feltoltc(tomb,holsor);printf("Adja meg a gyartasi evet: ");
feltoltsz(tomb,holsor);holsor++;
printf("\n\nAz uj adat mentese sikeres!\n\n\n");
break;
}
case 2: {
int modosit;
bool vane = 0;
printf("Adja meg az azonositot: ");
scanf("%d", &modosit);
for(int x = 0; x < holsor; ++x){
if (tomb[x].a == modosit){printf("Adja meg a a film cimet: ");
feltoltc(sege,x);
feltoltc(tomb,x);
printf("Adja meg a gyartasi evet: ");
feltoltsz(tomb,x);
printf("\n\nModositas vegrehajtva!\n\n\n");
vane = 1;}}
if(!vane){printf("\n\nNincs ilyen azonosito!\n\n");}
break;}
case 3: {
int keres;
bool talalt = 0;
printf("Adja meg az azonositot: ");
scanf("%d", &keres);
for(int x = 0; x < holsor; ++x){
if (tomb[x].a == keres){printf("Azonosito: %d\t A film cime: %s\t Gyartasi ev: %s\n\n", tomb[x].a, tomb[x].c, tomb[x].sz);talalt = 1;}}
if (!talalt){printf("\n\nNincs talalat!\n\n");}
break;}
case 4: {
rendez(tomb, holsor);
for (int j = 0; j < holsor; j++){printf("Azonosito: %d\t A film cime: %s\t Gyartasi ev: %s\n", tomb[j].a, tomb[j].c, tomb[j].sz);}
break;}
case 5: {break;}
default: {printf("Hibas azonostito"); break;}
};
}
}
void ujfilm()
{}
void feltoltc(egybe t[], int sor){
char szov;
int j=0;
while((szov = getchar()) != '\n'){t[sor].c[j] = szov; j++;}
t[sor].c[j] = '\0';
};void feltoltsz(egybe t[], int sor){
char szov2;
int k = 0;
while((szov2 = getchar()) != '\n'){t[sor].sz[k] = szov2; k++;}
t[sor].sz[k] = '\0';
};
void rendezve(){ujfilm();
}void rendez(egybe t[], int sor){
egybe seg[92];
int z = 0;for(int i = 0; i < sor; i++){
z++;
for(int j = z; j < sor; j++){
if(t.a > t[j].a){
seg(i).a = t(i).a;
t(i).a = t[j].a;
t[j].a = seg(i).a;for(int k = 0; k < 92; ++k){
seg(i).c[k] = t(i).c[k];
t(i).c[k] = t[j].c[k];
t[j].c[k] = seg(i).c[k];seg(i).sz[k] = t(i).sz[k];
t(i).sz[k] = t[j].sz[k];
t[j].sz[k] = seg(i).sz[k];}
}
}
}
}; -
Sk8erPeter
nagyúr
válasz szkorhetz #2928 üzenetére
Előbb nézzen ki normálisan a kódod.
Ajánlom ezt az oldalt:
http://indentcode.net/Ide meg a kódot normális kinézettel úgy illeszd be, hogy kijelölöd, majd megnyomod a Programkód gombot. Különben senki nem fogja ezt neked átnyálazni. Vagy rakd fel pastebinre, és nyomj rá a C-s szintaktika-kiemelésre.
Sk8erPeter
-
addikt
válasz Sk8erPeter #2930 üzenetére
Nem, az ilyen *,& stb-re gondoltam.
Mondjuk most a legjobban az erdekelne, hogy hogyan lehet a matematikai fuggvenyeket hasznalni "-lm" kapcsolo nelkul forditaskor, mert a biro nem fogja hasznalni, en meg nem igazan tudok pl. egy sqrt()-t megirni, de meg csak neten se talalok sehol egy hasznalhato fuggvenyt.
-lm nelkul meg undefined reference to `sqrt' hibat dob, mondjuk a vicc az, hogy ha ugyanabban a sorban printf("%f\n", sqrt(16)) formaban hasznalom akkor fordul, de a valami = sqrt(16)-al mar nem s ez az egy akadalyoz meg abban, hogy kesz legyek a kot. progival.[ Szerkesztve ]
-
addikt
válasz WonderCSabo #2932 üzenetére
Persze, includeoltam, gugliban rakeresve kismillio helyen irjak ezt a problemat, a megoldas mindenhol az, hogy forditsuk a "-lm" kapcsoloval, amivel valoban mukodik, de igy nem adhatom be a bironak mert nem azzal fogja forditani.
Kosz a linket, ha mar tudom, hogy melyik fogalmat takarja a jeloles akkor utananezek a fogalomnak(pl. kozbe rajottem, hogy a "char *valami" egy pointer, megneztem mik a pointerek s igy mar vilagos(abb)), de addig nehez.
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Miért, ott kiszedik az -lm kapcsolót?
Ha az
#include <math.h>
sort nem hagytad ki, sajnos elvileg ekkor is kellene az -lm kapcsoló: [link].Nem úgy működik, hogy feltöltöd a .c fájlodat, azt meg ott lefordítják?
Elég idióta dolog lenne, ha ott kiszednék ezt a kapcsolót a hallgatókkal való kiszúrásdiból. Vagy kikötötték, hogy nem használhatsz math.h-s függvényeket, vagy mi? Az sqrt() nem olyan, amit tiltani szoktak."Nem, az ilyen *,& stb-re gondoltam"
Olvasd el ezt a fejezetet: [link].===
(#2935) Korcsii : "off: ui: cportán debugolni rulz" hell yeah!
[ Szerkesztve ]
Sk8erPeter
-
addikt
válasz Sk8erPeter #2934 üzenetére
"A kötelező programot a Bíró fogja kiértékelni. Feltöltés után a Bíró programot a gcc fordítóval
-static -O2 paraméterezéssel lefordítja, majd a programot 10 különböző tesztesetre futtatja."Szoval feltoltom a .c fajlom, de fix parameterekkel forditja(ugye a biro is egy program), emiatt ilyenkor csak ennyit ad vissza:
"Fordítási hiba!
További információk a compile.txt állományban olvashatók."
Ezert mikozben irom/tesztetelem en is mindig
"gcc -O2 -static -o progineve forras.c -Wall -pedantic"
kapcsolokkal forditom, hogy ne erjen meglepetes.Korcsii: 10-szer adhato be s kiprobaltam, lasd ezen hsz-em egy kicsit feljebb.
[ Szerkesztve ]
-
addikt
Meghackeltem, a Biro is megkajalta max pontszammal, vegre.
Mivel nekem csak "int"-kent volt szuksegem a negyzetgyokre, igy a kovetkezo hack bevalt:int f_sqr(int szam){
return szam*szam;
}
int f_sqrt(int szam){
int i, hatvany;
for(i = 1; hatvany < szam ; i++){
hatvany = f_sqr(i);
}
return i - 1;
} -
addikt
válasz WonderCSabo #2938 üzenetére
Valoban, jelzett is a gcc, de akkor nem ertettem hirtelen mi a baja, most mar felfogtam, koszi.
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Ennek tükrében viszont elég érdekes, hogy "a Biro is megkajalta max pontszammal", ha full hibás, és még fordítási hibát is jelzett...
Nálunk egy BME-s programnál (Cporta) bármilyen fordítási hiba volt tapasztalható, nem fogadták el. (Lehet, hogy azóta enyhítették ott is.)
Sk8erPeter
-
addikt
válasz Sk8erPeter #2940 üzenetére
Ez csak warning volt, nem error, gondolom emiatt fogadta el, meg ettol meg most pont jol mukodott, szerencsemre.
Biro ha jol tudom csak azt nezi, hogy a kimenet egyezik-e az elore definialtal, itt legalabbis, kesobb gondolom komolyabbak lesznek az elvarasok, de ez meg csak az 1. szemeszter. -
WonderCSabo
félisten
-
szkorhetz
őstag
válasz Sk8erPeter #2929 üzenetére
#include<stdio.h>
#include <stdlib.h>
struct egybe {
int a;
char c[92];
char sz[92];
};
void feltoltc(egybe *, int sor);
void feltoltsz(egybe *, int sor);
void rendez(egybe *, int sor);
void rendezve();
void ujfilm();
int main()
{
int holsor = 0;
egybe tomb[92];
egybe sege[92];
int azon;
int menu;
bool vanilyen = false;
rendezve();
ujfilm();
while (menu != 5) {
printf("Fomenu:nKerem valasszon egyet a kovetkezo menupontok kozul!nn1: Uj adat felvetelen2: Modositasn3: Keresesn4: Listan5: Kilepesnn");
scanf("%d", &menu);
switch (menu) {
case 1:{
vanilyen = 0;
printf("Adja meg az azonositot: ");
scanf("%d", &azon);
if (!holsor) {
tomb[holsor].a = azon;
}
for (int f = 0; f < holsor; f++) {
if (tomb[f].a == azon) {
printf("Mar van ilyen azonosito!n");
vanilyen = true;
break;
} else {
tomb[holsor].a = azon;
}
}
if (vanilyen) {
break;
}
printf("Adja meg a a film cimet: ");
feltoltc(sege, holsor);
feltoltc(tomb, holsor);
printf("Adja meg a gyartasi evet: ");
feltoltsz(tomb, holsor);
holsor++;
printf("nnAz uj adat mentese sikeres!nnn");
break;
}
case 2:{
int modosit;
bool vane = 0;
printf("Adja meg az azonositot: ");
scanf("%d", &modosit);
for (int x = 0; x < holsor; ++x) {
if (tomb[x].a == modosit) {
printf("Adja meg a a film cimet: ");
feltoltc(sege, x);
feltoltc(tomb, x);
printf("Adja meg a gyartasi evet: ");
feltoltsz(tomb, x);
printf("nnModositas vegrehajtva!nnn");
vane = 1;
}
}
if (!vane) {
printf("nnNincs ilyen azonosito!nn");
}
break;
}
case 3:{
int keres;
bool talalt = 0;
printf("Adja meg az azonositot: ");
scanf("%d", &keres);
for (int x = 0; x < holsor; ++x) {
if (tomb[x].a == keres) {
printf("Azonosito: %dt A film cime: %st Gyartasi ev: %snn", tomb[x].a, tomb[x].c, tomb[x].sz);
talalt = 1;
}
}
if (!talalt) {
printf("nnNincs talalat!nn");
}
break;
}
case 4:{
rendez(tomb, holsor);
for (int j = 0; j < holsor; j++) {
printf("Azonosito: %dt A film cime: %st Gyartasi ev: %sn", tomb[j].a, tomb[j].c, tomb[j].sz);
}
break;
}
case 5:{
break;
}
default:{
printf("Hibas azonostito");
break;
}
};
}
}
void ujfilm()
{
}
void feltoltc(egybe t[], int sor)
{
char szov;
int j = 0;
while ((szov = getchar()) != 'n') {
t[sor].c[j] = szov;
j++;
}
t[sor].c[j] = '
[link][ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz WonderCSabo #2943 üzenetére
Ja, sorry, akkor félreértettem azt a mondatrészt, hogy "jelzett is a gcc"... nyilván nem a függvény hibás mivoltára mondtam, hogy fordítási hiba, amikor az rossz eredményt ad vissza, hanem az esetleges warningokra, errorra, amit kaphatott akkor, amikor inicializálatlan változója volt..
(#2944) szkorhetz : hát látom ez nem jött össze....
Pedig annyira nem nehéz... kijelölöd a programkódot, majd azután rákattintasz a Programkód gombra, ez a nagy mágia...Sk8erPeter
-
dany27
őstag
sziasztok!
Adott egy láncolt lista. Hogyan tudom helyben megfordítani, azaz nem használok segédlistát hozzá??
Előre is köszi!
-
Ú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!
- Hálózati / IP kamera
- PlayStation 1 / 2
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Napelem
- World of Tanks - MMO
- Magisk
- LEGO klub
- Mobilinternet
- 3 évig még biztosan nem rendelhetünk Xiaomi EV-t
- bobalazs: RTX 4070 Super Undervolting and Overclocking Alulfeszelés és túlhajtás
- További aktív témák...
- ZOTAC GeForce GTX 1080 AMP Edition 8GB GDDR5X 256bit
- Filmes gép gyűjtemény
- Nikon D5000 + AF-S DX NIKKOR 18-105 mm
- Bontatlan Seagate & Western Digital HDD-k 3TB - 12TB -ig - Számla + Garancia, Ár alatt! BeszámítOK!
- DJI Mini 4 pro FMC drón - 3 akku, RC2 táv, 2 táska, Filterek, 2025. decemberig garancia, DJI Care