Wątek przeniesiony 2016-05-23 23:41 z C/C++ przez ŁF.

Kod liczący sumę, coś z nim nie tak?

0

Mam problem z moim kodem. Chciałem rozwiązać pewne zadanie:

W pierwszym wierszu znajduje się liczba t testów (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ą.

Liczby jakie są po kolei wprowadzane to 2, 5, 1 2 3 4 5, 2, -100 100. Program oczywiście w moim mniemaniu dobrze działa ponieważ wyniki są dobre.
Może jakoś te wyniki na samym końcu trzeba wyświetlić? (Mogę podać link do strony z zadaniem)
O to mój kod:

     
    int t,n,a,wynik=0;
    cin>>t;
    if (t>=0 && t<=100);
    for(int i=0;i<t;i++)
    {
     cout<<"Ile chcesz zsumować liczb?"<<endl;
     cin>>n;
     
     for(int j=0;j<n;j++)
     {
      cin>>a;
      wynik+=a;
     }
     cout<<wynik<<endl;
     wynik=0;
    }  
1

A po co wyświetlasz jakieś dodatkowe komunikaty? Było tak polecone w zadaniu? Zobacz jakie ma być wejście i zrób tak, żebyś dla tego wejścia dostał to co podają na wyjściu i nic więcej!

0
#include <iostream.h>

void main()


{
int a,i,wynik;

wynik=0;

do   {

cin >> a;

wynik=wynik+a;

cout << '#' << wynik << '#' << endl;

}

while(1);




}

ja bym zrobil takie cos na sumowanie :)

0
#include <iostream.h> 

A co to jest?

1

wywal cout<<"Ile chcesz zsumować liczb?"<<endl; i będzie dobrze, pamiętaj że na spoj-u sprawdza automat więc to co wypisuje twój program musi dokładnie odpowiadać wymaganiom.

0

@szweszwe Faktycznie chodziło o te niepotrzebne komentarze :D Dzięki wielkie!

0

@sig Właśnie po waszych komentarzach teraz to ogarnąłem :)

0

carlosmay

tak sobie radze :)

link png

0
  • Sprawdź to, przez zaciągnięcie na wejściu wszystkich danych powinno być całkiem szybkie.
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <numeric>

using data_cont = std::vector<int>;

data_cont get_input_data() {
	data_cont data;
	std::copy(
		std::istream_iterator<data_cont::value_type>(std::cin),
		std::istream_iterator<data_cont::value_type>(),
		std::back_inserter(data)
	);
	return data;
}

//pray for tail-recursion optimization
void process(data_cont::iterator beg, data_cont::iterator end) {
	if(beg != end) {
		int n = *beg;
		auto seq_beg = beg + 1;
		auto seq_end = seq_beg + n;
		std::cout << std::accumulate(seq_beg, seq_end, 0) << '\n';
		process(seq_end, end);
	}
}

int main() {
	using namespace std;
	auto data = get_input_data();
	process(begin(data), end(data));
	return 0;
}

http://ideone.com/E2CQSt

Tak, dobrze się bawiłem

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