Wątek zablokowany 2020-03-16 17:53 przez Ktos.

[C++] Proste dodawanie

0

Mam do napisania program gdzie, w pierwszym wierszu znajduje sie liczba t testow (0 < t < 100) Każdy test opisany jest w następujący sposób: w pierwszym wierszu dana jest liczba n - liczba liczb do zsumowania. Następnie podanych jest n liczb (pooddzielanych spacją). Przykladowe dane:
Input:
2 (t)
5 (n)
1 2 3 4 5
2 (n)
-100 100
Output:
15
0

Teraz pojawia sie problem, nie potrafie sobie poradzic z wypisaniem wszystkich wynikow. Domyslam sie ze musze skorzystac z tablic, jednak mam problem zeby to prawidlowo dzialalo ;/

#include <iostream>
using namespace std;

int main()
{
int t, n, a, wynik;
int tb[100];

    cin >> t;
    for(int i=0;i<t;++i)
    {
       wynik = 0;
       cin >> n;
       for(int x=0;x<n;++x)
       {
          cin >> a;
          wynik += a;
       }
       cout << wynik << "\n";   // wyniki wypisywane co kolejny test   
    }
    for(???)
     cout << tb[t] << "\n";   // wyniki wypisywane na koniec programu

cin.ignore();
cin.get();
return 0;
}
0
#include <iostream>
using namespace std;

int main()
{
    int t, n, a, wynik=0;
    int tb[100];
    cout<<"Podaj ilosc Testow: ";
    cin >> t;
    for(int i=0;i<t;i++)
    {
           cout<<"Test nr "<<i+1<<endl;
	   cout<<"Ile liczb chcesz zsumowac?? :";
	   cin>>a;
	   cout<<endl;
	   for(int j=0;j<a;j++)
	   {
		cout<<"podaj liczbe :"<<j+1<<" ";
		cin>>n;
		wynik=wynik+n;
	    
	   }
	   tb[i]=wynik;
	   
    }
	for(int k=0;k<t;k++)
	{
		cout<<"wynik testu nr "<<k+1<<" = "<<tb[k]<<endl;
	}
   

cin.ignore();
cin.get();
return 0;
}

Prosze :)

0

Po prostu na koniec przebiegu najbardziej zewnętrznej pętli for, dodawaj do tb[i] wynik dodawania, a po wyjściu z pętli wypisz zawartość tablicy do indeksu równego t-1, przy pomocy pętli for.

0

Ostatecznie program wyglada tak:

#include <iostream>
using namespace std;

int main()
{
int t, n, a, wynik;
int tb[100];

    cin >> t;                   // (t) ilosc testow
    for(int i=0;i<t;++i)
    {
           wynik=0; 
           cin>>n;              // (n) ilosc liczb do sumowania           
           for(int j=0;j<n;++j)
           {
                cin>>a;         // (a) sumowane liczby
                wynik += a;           
           }
           tb[i]=wynik;         // zapisywanie wynikow do tablicy  
    }
    for(int k=0;k<t;++k)
           cout<<tb[k]<<"\n";
    
cin.ignore();
cin.get();
return 0;
}

neytro
W Twojej wersji nie podobalo mi sie glownie to, ze w petlach jeszcze dodatkowo zwieszales wartosci parametrow. Przeciez do tego mozna uzyc predekrementacji, zawsze kod wyglada przyjemniej ;)
Ale dzieki, za pomoc przy wykonaniu petli wypisujacej wyniki, nie moglem tego w ogole ruszyc, a teraz wszystko jest juz jasne i przyda sie na przyszlosc.

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