Új hozzászólás Aktív témák
-
Jester01
veterán
MOD: ha figyelmesebben olvastam volna akkor láttam volna, hogy az -lm már megvan Pedig azzal lesz valami, mert ez akkor is linker error. Be tudnád másolni az egész tesztprogramot és a pontos parancssort és hibaüzenetet?
$ cat >test.c
#include <math.h>
int main()
{
float c = pow(3, 2);
return 0;
}
$ gcc -Wall -lm test.c
test.c: In function 'main':
test.c:4: warning: unused variable 'c'[ Szerkesztve ]
Jester
-
eriktoth
tag
Üdv! Olyan kérdésem lenne, hogy van egy számítási feladatunk amit meg kell oldani külön függvényekben, nem szabad a main-ba az egészet. A kérdésem az lenne, hogy hogy lehet ezeket meghívni a main-ba, előre is köszönöm
-
eriktoth
tag
válasz WonderCSabo #2810 üzenetére
Köszönöm ! De lenne olyan probléme, hogy 1 függvénybe, több műveletet végez el, és például van az első ami végzi a beolvasást, utána meg a második ami maga a számításokat és a kiirast, ezt hogyan tudnám ugy meghívni main-ba, hogy fusson, és ne csak ha az egész példát main-ba teszem, sajnálom, de kezdő vagyok és nekem ez elég magas :S
-
WonderCSabo
félisten
válasz eriktoth #2811 üzenetére
Nem tudom mivel kell műveletet végezned, de csináld ezt: vmilyen változókba visszatérsz az első beolvasó fv-el, majd ezekre a main-ben meghívod a műveletet elvégző fvt.
int main(){
a = beolvas();
művelet(a);return 0; }
Szerk.: De ha erre nem jöttél rá magadtól, akkor nem magyarázták el rendesen a függvényeket.
[ Szerkesztve ]
-
TheRolf
csendes tag
Sziasztok! Az alábbi program valamiért nem fut le, meg tudná mondani valaki, mi a hiba? (+építő kritikát is elfogadok, hogy mit használjak mi helyett stb.) Előre is köszi:
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdbool.h>
int main(){
char string[20];
char back[20];
int i,len;
bool rel;
rel=true;
printf("Add meg a szot! ");
gets(string);
len = strlen(string);
if(len%2==0){
for(i = 0; i<len/2; i++){
if(string[i]!=string[len-i]){
rel=false;
}
}
}
else{
for(i = 0; i<(len+1)/2; i++){
if(string[i]!=string[len-i]){
rel=false;
}
}
}
if(rel==true){
printf("palindrom");
}
else{
printf("nem palindrom");
}
} -
kingabo
őstag
válasz TheRolf #2813 üzenetére
Hali!
Csak gyorsan átfutva az tűnt fel, hogy a string-ben az n+1-edik elemre hivatkozol. Pl van egy 5 hosszú stringed, akkor az indexek 0 és 4 között vannak a string[len-i] i=0 esetén viszont 5. Megoldás vonj le még 1-et az indexből, vagyis így nézzen ki string[len - i - 1].
Hibakereséhez ajánlom a debugger használatát. -
Jester01
veterán
válasz TheRolf #2813 üzenetére
1) gets-t tilos használni
2) teljesen fölösleges a két változat, a második jó (lesz*) mind a két esetben
3) a math.h is fölösleges
4) ha egyszer int main, akkor illene valamit visszaadni
5) a fordító üzeneteit érdemes megszívlelni (és persze bekapcsolni őket)
6) a kiírás végére illene soremelést tenni
7) a "valamiért nem fut le" szánalmas hibaleírás
8) a ciklusból ki lehet lépni ha már kiderült, hogy nem palindromMOD: * úgy értem, ha a kingabo által fentebb jelzett hibát javítod
[ Szerkesztve ]
Jester
-
dany27
őstag
Sziasztok!
ANSI C-ben hogy tudok grafikus alkalmazásokat készíteni??
C++ nem játszik, ez kitétel hogy ANSI C-ben készüljön a program....
Előre is köszi!
-
TheRolf
csendes tag
válasz Jester01 #2815 üzenetére
Köszi a segítséget, és a khm kritikát, mint írtam, kezdő vagyok
1) a tanár azt írta segítségként a feladathoz, hogy fgets-et lehet használni; azt is tilos?
4) return 0; <- így kell?
5) Windows alatt dolgozom CodeBlocks-szal, a fordító üzenetei gondolom a Build Messages, ha nem fordul le a program, akkor tudom értelmezni, mi a hiba, de az előző esetben nem írt ki semmit (úgy emlékszem); ha van más üzenet is, kérlek írd meg, hol keressem
6) a sorelemés ugye a " \n " ?Köszi!
-
TheRolf
csendes tag
válasz WonderCSabo #2824 üzenetére
A build messages-be eddig is írta hogy "x errors, x warnings", szóval az oké.
Más: hogy lehet bekérni két egyjegyű számot így: "x y" és azt eltárolni két int formájában (n = x, m = y)? Már mindent kipróbáltam, a legjobb eredmény, hogy az első számot eltárolja, de a második helyére y-on kívül több számjegy kerül.
#include <stdio.h>
int main(){
int i,n,m;
char kar[4];
char en,em;
fgets(kar,4,stdin);
en = kar[0];
em = kar[2];
printf("%c %c\n",en,em);
n = atoi(&en);
m = atoi(&em);
printf("%d\n",n);
printf("%d",m);
return 0;
}az első printf is értelmes dolgokat ad ki, de utána az atoi-nál elromlik valami, és plussz számok jönnek be...
[ Szerkesztve ]
-
Jester01
veterán
válasz TheRolf #2825 üzenetére
Itt csak az a baj, hogy az atoi-nek string kell, ami C-ben nulla byte-tal lezárt karaktertömböt jelent. Több lehetőséged is van. Talán a legegyszerűbb, ha a kar[1]-et nullázod. Ekkor ugye így fog kinézni a tömb { x, 0, y, 0 } (a végére az fgets tette a nullát). Ilyenformán a konverzióhoz simán megadhatod az &kar[0] illetve &kar[2] pointereket (ami ugyanaz mint a kar ill. kar+2).
Másik lehetőség egy számjegyű számok konvertálására ha simán levonod belőle a 0 ascii kódját, pl. n = en - '0';
Jester
-
dany27
őstag
Sziasztok!
Code blocks+GTK segítségével szeretnék GUI-s alkalmazást írni c-ben...De valamiért nem akar lefordulni már az első példa program sem...
Ilyen hiba tömkellegét dobja: C:/GTK/include/gtk-2.0/gdk/gdkdnd.h:126: error: expected ')' before '*' token
Fent van a dev kit a GTK-hoz és be is van állítva a linker meg a compiler is!
Mi lehet a gond?
Előre is köszi!
[ Szerkesztve ]
-
dany27
őstag
na ezeket sikerült kiküszöbölnöm...
Most ilyenért köhög: C:\Users\Dani\Documents\C\konyvtar\main.c|7|undefined reference to `gtk_window_new'|
Egyszerű sima példaprogramot szeretnék lefutattani hogy lássam müködik a dolog...
#include <gtk/gtk.h>
int main (int argc, char *argv[]) {
GtkWidget * main_window;
// gtk_init (&argc, &argv);
// main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
// gtk_widget_show (main_window);
// gtk_main ();
return 0;
}[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Biztos nincs include-olva valami szükséges lib, vagy a franc se tudja kitalálni így a kódod nélkül...
Egyébként ha már beírsz egy kérdést, és megtaláltad rá a megoldást (ld. előző kérdésed), nem ártana, ha leírnád, mi volt az. Hátha más is találkozik vele...
egyébként elképesztő, hány helyen sírnak a Code::Blocks miatt (még egyetemi levlisták is tele vannak ezzel kapcsolatos problémákkal), hogy valami nem jön össze vele, hihetetlen, hogy még mindig nem sikerült úgy megcsinálni ezt a programot, hogy egy kezdő számára is totál kézenfekvő legyen vele minden, és ne kelljen külön szopni vele, hogy be legyen konfigolva. Vagy ez az első szűrő?Szerk.: látom szerkesztetted a hsz.-edet, és bemásoltad a példakódot. Első körben pl. ezt a fórumot láttad? Vagy ezt.
[ Szerkesztve ]
Sk8erPeter
-
dany27
őstag
Teljes mértékben igazad van Sk8erPeter!
A hiba forrása az volt hogy nem elég felrakni az alap GTK dev kitet hozzá hanem van még melette 4 pakk ami kell neki!(glib, cairo, atk, pango)
Nem nem ez az első szűrő egyébként, de ki a franc gondolná h nem rakják bele akkor normálisan egy pakkba az egészet. Akkor mi értelme van külön kiadni ha úgyis már a legalapabb szarnál is kell neki a többi csomag!
[ Szerkesztve ]
-
Jester01
veterán
Ebben konkrétan ki van kommentezve az amit a hibaüzenet hivatkozik tehát valamit sumákolsz
Egyébként undefined reference akkor szokott lenni, ha elfelejted hozzálinkelni a megfelelő könyvtárakat. Ugye a headerek kellenek a fordításhoz, a libraryk pedig a linkeléshez.
Jester
-
-
Sk8erPeter
nagyúr
-
dany27
őstag
válasz Sk8erPeter #2835 üzenetére
Köszi!!
De azért kiírtam, mert hátha valaki lusta rákattintani, és így előbb ráakad ha csak a keresőt használja esetleg! -
eriktoth
tag
Üdv!
Valaki tudna mondani valamit az INFINITY fügvényről? -
chabeee
tag
Sziasztok! Lenne egy ilyen függvényem:
void masol (int** t1, int** t2, int** t3, const int n1, const int n2)
{
int i,j, counter = 0;
for(i=0;i<n1;i++) {
counter++;
}
for(i=0;i<n2;i++) {
counter++;
}
*(t3) = (int*)malloc(sizeof(int)*counter);
for(i=0;i<n1;i++) {
*(*(t3)+i) = *(*(t1)+i);
}
for(i=n1, j=0; i<counter,j<n2; i++, j++) {
*(*(t3)+i) = *(*(t2)+j);
}
for(i=0;i<counter;i++) {
printf("3.%d: %d\n", i+1, *(*(t3)+i));
}
free(*(t3));
}annyit csinál hogy a t1 és a t2 dinamikus tömb elemeit belemásolja egy t3 nevű dinamikus tömbbe, viszont warningel ennél a sornál:
for(i=n1, j=0; i<counter,j<n2; i++, j++) {
ezt írja: ../main.c:113:26: warning: left-hand operand of comma expression has no effect [-Wunused-value]
ha van valakinek valami ötlete, hogy miért írja ezt, annak megköszönném a segítséget!
üdv csabi
-
chabeee
tag
válasz WonderCSabo #2840 üzenetére
próbáltam már, ezt írja:
../main.c:115:15: error: lvalue required as left operand of assignment
../main.c:115:42: warning: value computed is not used [-Wunused-value]
make: *** [main.o] Error 1
for(i=n1 && j=0; i<counter && j<n2; i++ && j++) { -
chabeee
tag
végül is tök mindegy csak kíváncsi voltam rá írtam helyette 2 ciklust!
-
chabeee
tag
válasz WonderCSabo #2843 üzenetére
jaj, köszönöm!
-
kingabo
őstag
válasz chabeee #2839 üzenetére
Ezekkel mit akartál megvalósítani?
for(i=0;i<n1;i++) {
counter++;
}
for(i=0;i<n2;i++) {
counter++;
}Szerintem ez ugyanaz és nagyságrendekkel gyorsabb:
counter = n1 + n2;
A t3-at, ha csak a kiíratáshoz használod, akkor fölösleges a másolás. Ha ez egy visszatérő paraméter akarna lenni, akkor az fv végén lévő free(*(t3)); törli és ha ezután használni szerednéd (a törölt elemeket), csúnya dolgok történ(het)nek.
[ Szerkesztve ]
-
eriktoth
tag
Üdv!
Hogyan lehetne ezt a képletet kiszámolni c-ben:
x +1/2 (x^3/3)! + (1/2)(3/4)*(x^5)+(1/2)*(3/4)(5/6)*(x^7/7).......
Ú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!
- Windows 11
- Magga: PLEX: multimédia az egész lakásban
- Székesfehérvár és környéke adok-veszek-beszélgetek
- Facebook és Messenger
- Autós topik
- Mozilla Firefox
- HP notebook topic
- Azonnali VGA-s kérdések órája
- Azonnali informatikai kérdések órája
- A Gigabyte is visszaveszi alaplapjainak alapértelmezett tuningját
- További aktív témák...
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5