C nyelvű programozásból kéne egy kis help.4 órája agyalok rajta, de nem akar összejönni :/. Hol van a programtörzsben hiba, illetve mi az ami még hiányzik belőle?
A feladat a következő: Írj programot, amely bekéri a felhasználó kedvenc számát, majd létrehoz egy 10 elemű egészek tárolására alkalmas tömböt,
amit feltölt -51 és 51 közötti véletlen egész számokkal (-51 és 51 is lehet a generált szám). Majd meghív egy eljárást,
amely paraméterül megkapja a kedvenc számra mutató mutatót, a tömböt és annak méretét, majd módosítja a kedvenc számot
úgy, hogy minden tömbelemhez generál egy véletlen egész számot 0-t vagy 1-t. Ha a 0-t generált egy tömbelemhez, akkor azt
a tömbelemet hozzáadja a kedvenc számhoz, ha 1-est generált, akkor pedig kivonja a kedvenc számból a tömbelemet. Majd a
program írja ki a képernyőre a módosított kedvenc számot.
Ennyire jutottam:
#include <stdio.h>
#include <stdlib.h>
int (int *p)
int main(){
int i,j,k=0,l=1,t1[10],int*p,also=0,felso=1;
printf("Add meg a kedvenc szamod!\n");
scanf("%d",j);
for(i=0;i<10;i++)
t1[i]=rand()%(-51-51+1)+51;
p*=j&&t[10];
for(i=0;i<10;i++)
t1[i]=rand()%(felso-also)+also;
if(t1[i]=rand()%(felso-also)+also==k) {printf("A megvaltozott kedvenc szam:(t1[i]+k)\n);}
if(t1[i]=rand()%(felso-also)+also==l) {printf("A megvaltozott kedvenc szam:(l-t1[i])\n);}
system("PAUSE");
return 0;
}
Valaki meg tudná mondani, hogy hol a hiba?
"meghív egy eljárást" ez a feladat, de én itt nem látom, hogy valahol is meghívtál volna egyet.
Ez mi? p*=j&&t[10];
meg ez? int (int *p)
Ha több sort akarsz a for-ciklusba rakni, akkor {} kell.
stb...
Nem ártana, ha a szintaxisra több figyelmet fordítanál.
For (feltétel) { ciklusutasítás }
Kapcsos zárójelek hiánya.
Aztán:
If then else kapcsolatra szokj rá ahelyett hogy két if feltétel vizsgálatot raksz egymás alá.
Első blikkre ennyi, amit kihagytam majd elmondják nálam okosabbak. :)
Gyanús, hogy feltetted ugyanezt a kérdést. Másik részről, nem hiszem, hogy a segitség után, amit ott kaptál, ennyire elrontottad volna a kódot...
A legnagyobb hiba, hogy miközben a
"p*=j&&t[10]; "-vel referenciát akarsz beállitani, a "*=" művelet a szorzás röviditett változata, a "&&" egy logikai ÉS kifejezés. Amit te akartál, ennyi:
p=&j; Ahol 'p' a pointered, &j pedig a referencia a 'j' értékére.
később hivatkozhatsz erre az értékre '*p'ként.
Itt a másik kérdés, ott több választ is találsz:
http://www.gyakorikerdesek.hu/szamitastechnika__programozas_..
Ja, és igen, for, if, while, etc blokkoknál a végrehajtandó utasitásokat mindig rakd {} közé, átláthatóbb, és később megakadályozod az akaratlan hibákat, ha ki akarod egésziteni a kódblokkot.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!