Kezdőoldal » Számítástechnika » Programozás » Hogyan néz ki az a C program,...

Hogyan néz ki az a C program, ahol kérünk egy akármilyen nagyságú sorozatot és ezeknek az összegét adjuk vissza?

Figyelt kérdés

A számsorozat végét 0-val kell jelölni, de nem része a sorozatnak, aminek az összegét kell visszaadni.


Nekem eddig így néz ki, de a tomb[]-nél kér nagyságot, amit előre nem tudok. Ezzel lenne a problémám:

#include <stdio.h>



int sorossz(int tomb[]){

int i;

int a;

for (i=0; tomb[i]==0; i++)

a=tomb[i]+tomb[i+1];


return a;

}



int main(){

int tomb[];

int i;

for(i=0; tomb[i]==0; i++)

scanf("%d", &tomb[i]);


printf("%d", &sorossz(tomb[]));


return 0;

}


2017. nov. 22. 15:46
1 2 3
 1/21 SimkoL ***** válasza:
Miért kellene tömb?
2017. nov. 22. 15:57
Hasznos számodra ez a válasz?
 2/21 A kérdező kommentje:
Nem kell. Hogyan csinálnád te?
2017. nov. 22. 15:59
 3/21 tabaki ***** válasza:
A bekért számokat mindig hozzáadod egy változóhoz. Egyébként mindegy, hogy az utolsó nullát is hozzáadod-e...
2017. nov. 22. 16:08
Hasznos számodra ez a válasz?
 4/21 anonim ***** válasza:

Ennek eddig nem sok köze van a feladathoz.

Számokat kéne összegezni.

Mi okozza a gondot?

2017. nov. 22. 16:12
Hasznos számodra ez a válasz?
 5/21 A kérdező kommentje:

Nem tudom mit rontok el, megcsináltam tömbök nélkül, de valamiért 10 számjegyet ír ki:

#include<stdio.h>


int main() {

int i, a;

int x=0;


for(i=0; a==0; i++){

scanf("%d", &a);

x+=a;

}

printf("%d", &x);

return 0;

}

2017. nov. 22. 16:34
 6/21 anonim ***** válasza:

Talán, ha x-nek nem a memóriacímét irnád ki, hanem az értékét.

Valamint a ciklus feltételed is rossz.

És a változóneveid is borzalmasak.

2017. nov. 22. 17:08
Hasznos számodra ez a válasz?
 7/21 anonim ***** válasza:

1. Nem a==0, hanem a!=0. Nem kilépési feltételt adsz, hanem folytatási feltételt.

2. Az 'a' változót úgy ellenőrzöd a legelső ciklusban, hogy még semmilyen értéket nem adtál neki. Rendszerint 0-ra lesz inicializálva, és rögtön ki is lép. Vagy adj neki egy nemnulla kezdőértéket, vagy for ciklus helyett do{..}while ciklust csinálj.

3. A printf-ben nem memóriacímet kell megadni, hanem értéket, &x helyett simán x.

2017. nov. 22. 17:09
Hasznos számodra ez a válasz?
 8/21 anonim ***** válasza:
az & pointert/memoriacimet ad vissza, töröld ki, és a ciklus sem azt csinálja amit akarsz
2017. nov. 22. 17:10
Hasznos számodra ez a válasz?
 9/21 A kérdező kommentje:

#include<stdio.h>


int main() {

int a=1;

int x=0;


do{

scanf("%d", a);

x+=a;

} while (a!=0);

printf("%d", x);

return 0;

}

2017. nov. 22. 17:31
 10/21 A kérdező kommentje:
de így se jó
2017. nov. 22. 17:33
1 2 3

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!