Wątek przeniesiony 2017-10-19 19:23 z C/C++ przez Patryk27.

Program do dodawania 10 liczb

0

Mam napisać program który wczytuje od użytkownika 10 liczb i następnie je sumuje.Mam do tego użyć pętli for lub while. Póki co ma coś takiego.

#include <stdio.h>

int main()
{
int a=0;

int c;
while( scanf("%d" , &c)==1){
    a=a+c;
    printf("%d\n", a);
}

return 0;
}

Nie bardzo wiem jak to zrobić. Jakieś wskazówki?

0

no skoro pętla ma się wykonać 10 razy, to zmodyfikuj tę pętlę co masz, bo jest całkowicie skopana :D prinfa z wynikiem raczej wywal poza pętlę, bo po co ma się wyświetlać 10 razy. Poczytaj może jeszcze o pętlach

0

Jak zrobić żeby pętla wykonała się 10 razy?

0

Jeżeli wiesz ile razy pętla ma się wykonać wtedy używasz pętli for.

for(int i = 0; i < 10; i++)
{
	// Tutaj kod który ma się wykonać 10 razy.
}
0
#include <iostream>
#include <cstdlib>


using namespace std;

int main(){

    cout << "Podaj 10 liczb" <<endl;
    int suma = 0;

    for(int i=1; i<=10;i++) // Wykonuje się 10 razy
    {
        cout << "Podaj " << i << " liczbe" <<endl; // Za każdym razem podajesz liczbę do sumowania
        int wprowadz = 0; // zrobiłem sobie zmienną pomocniczą, która się zeruje z każdym przebiegiem pętli
        cin >> wprowadz; // wprowadzasz dana liczbę
        suma+=wprowadz; // dodajesz wprowadzona liczbę sumy (to samo co suma=suma+wprowadz)
    }

    cout << "Suma 10 liczb wynosi " << suma << endl; // PO pętli wypisujesz sumę tych liczb 


    return 0;
}

Myślę, że już będziesz wiedział o co chodzi. Teraz przerób sobie to na swoje potrzeby

0

Po analizie kodu Kaszubaka wyszło mi coś takiego:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
	printf("Podaj 10 liczb");
	int sum=0;
	for(int i=1;i<10;i++)
{
	printf("Podaj %d liczbe",i);
	int wprowadz=0;
	scanf("%d",wprowadz);
	sum=sum+wprowadz;
}
printf("Suma 10 liczb wynosi %d",sum);
return 0;
}

Jednak program nadal nie działa, to jest zawiesza się kiedy wprowadzam wartość.

0

scanf oczekuje wskaźnika, nie wartości.

0

Ok, dzięki wiedziałem, że zrobiłem jakiś głupi błąd. Prz przepisywaniu kodu z c++ w ogóle o tym zapomniałem.

0
&wprowadz;

to jest wskaźnik na liczbę.

printf("costam \n");

Dodaj sobie łamanie linii. Będzie ładniej wyglądać

0

Nie wiem po co ten for:

  1. while stosujesz jak masz warunek pętli a nie potrzebujesz indeksów
  2. albo gdy masz tylko licznik wykonań
  3. for stosujesz jak potrzebujesz indeks pętli
  4. for-each stosujesz jak masz wykonać coś dla wszystkich elementów
  5. do-while stosujesz jak chcesz sprawdzić warunek po wykonaniu pętli

To zadanie pasuje 1 i 2 czyli:

int cnt = 10;
while( (cnt --> 0) && (scanf("%d" , &c)==1)){

Operator "dąży do" ;-) działa tak:
https://ideone.com/vTv8Ro

0

Tutaj pętla while, jednak chyba przesadziłem z liczbą zmiennych i suma wychodzi mi o 1 za dużo.


#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    printf("Podaj 10 liczb\n");
    int a=2,c,sum,cnt = 10;
    while( (cnt --> 0) && (scanf("%d" , &c)==1))
	{
    printf("Podaj %d liczbe\n",a++);
    int wprowadz=0;
    sum+=c;
}
printf("Suma 10 liczb wynosi %d",sum);
return 0;
}
0

Nigdzie nie ustawiasz wartości początkowej sum.

0

A co dokładnie oznacza ==1 w tym kodzie.

 (scanf("%d" , &c)==1
1

Funkcja scanf zwraca liczbę wczytanych parametrów. Jeśli np. input stream sie skończył to scanf mógł nie wczytać tej twojej liczby.

2

Napisałem ci ten program, jestem prosto po bootcampie i takie zadanie to ez.

main(){
int a,b,c,d,e,f,g,h,i,j;
cout<<"podaj 10 liczb"<<endl;
  for (int i =0; i<1; i++){
    cin>>a;
    cin>>b;
    cin>>c;
    cin>>d;
    cin>>e;
    cin>>f;
    cin>>g;
    cin>>h;
    cin>>i;
    cin>>j;
    sum = a+b+c+d+e+f+g+h+i+j;
  }
cout<<"wynik: "<<sum;
}

Nie musisz dziękować, :D

0

@Krzywy Kret potrzebuje programu, który dodaje 100 liczb, napiszesz mi?

2

@bogdans jeśli nie ogarniasz tak prostego kodu to mam złą wiadomość - nie nadajesz się do programowania - pozdro

main(){
int aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,da,db,dc,dd,de,df,dg,dh,di,dj,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,ia,ib,ic,id,ie,if,ig,ih,ii,ij,ja,jb,jc,jd,je,jf,jg,jh,ji,jj;
cout<<"podaj 100 liczb"<<endl;
  for (int i =0; i<1; i++){
    cin>>aa;
cin>>ab;
cin>>ac;
cin>>ad;
cin>>ae;
cin>>af;
cin>>ag;
cin>>ah;
cin>>ai;
cin>>aj;
cin>>ba;
cin>>bb;
cin>>bc;
cin>>bd;
cin>>be;
cin>>bf;
cin>>bg;
cin>>bh;
cin>>bi;
cin>>bj;
cin>>ca;
cin>>cb;
cin>>cc;
cin>>cd;
cin>>ce;
cin>>cf;
cin>>cg;
cin>>ch;
cin>>ci;
cin>>cj;
cin>>da;
cin>>db;
cin>>dc;
cin>>dd;
cin>>de;
cin>>df;
cin>>dg;
cin>>dh;
cin>>di;
cin>>dj;
cin>>ea;
cin>>eb;
cin>>ec;
cin>>ed;
cin>>ee;
cin>>ef;
cin>>eg;
cin>>eh;
cin>>ei;
cin>>ej;
cin>>fa;
cin>>fb;
cin>>fc;
cin>>fd;
cin>>fe;
cin>>ff;
cin>>fg;
cin>>fh;
cin>>fi;
cin>>fj;
cin>>ga;
cin>>gb;
cin>>gc;
cin>>gd;
cin>>ge;
cin>>gf;
cin>>gg;
cin>>gh;
cin>>gi;
cin>>gj;
cin>>ha;
cin>>hb;
cin>>hc;
cin>>hd;
cin>>he;
cin>>hf;
cin>>hg;
cin>>hh;
cin>>hi;
cin>>hj;
cin>>ia;
cin>>ib;
cin>>ic;
cin>>id;
cin>>ie;
cin>>if;
cin>>ig;
cin>>ih;
cin>>ii;
cin>>ij;
cin>>ja;
cin>>jb;
cin>>jc;
cin>>jd;
cin>>je;
cin>>jf;
cin>>jg;
cin>>jh;
cin>>ji;
cin>>jj;
    sum = aa+ab+ac+ad+ae+af+ag+ah+ai+aj+ba+bb+bc+bd+be+bf+bg+bh+bi+bj+ca+cb+cc+cd+ce+cf+cg+ch+ci+cj+da+db+dc+dd+de+df+dg+dh+di+dj+ea+eb+ec+ed+ee+ef+eg+eh+ei+ej+fa+fb+fc+fd+fe+ff+fg+fh+fi+fj+ga+gb+gc+gd+ge+gf+gg+gh+gi+gj+ha+hb+hc+hd+he+hf+hg+hh+hi+hj+ia+ib+ic+id+ie+if+ig+ih+ii+ij+ja+jb+jc+jd+je+jf+jg+jh+ji+jj;
  }
cout<<"wynik: "<<sum;
}
0

Ale ja bym chciał bez pętli..

1
bogdans napisał(a):

@Krzywy Kret potrzebuje programu, który dodaje 100 liczb, napiszesz mi?

No pewnie, że ci pomogę, o to kod:

main()
{
    int sum2 = 0;
   cout << "podaj 100 liczb" << endl;
    for (int j = 0; j < 10; j++) {
        int sum = 0;
        int a, b, c, d, e, f, g, h, i, j;
        for (int i = 0; i < 1; i++) {
            cin >> a;
            cin >> b;
            cin >> c;
            cin >> d;
            cin >> e;
            cin >> f;
            cin >> g;
            cin >> h;
            cin >> i;
            cin >> j;
            sum = a + b + c + d + e + f + g + h + i + j;
        }
        sum2 += sum;
    }
    cout << "wynik: " << sum2;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1