Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
public:wettbewerbe:sum [2010-02-09 13:45] ben |
public:wettbewerbe:sum [2013-01-21 09:48] (aktuell) daniel [Beispielprogramme] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Sum ====== | ====== Sum ====== | ||
- | Your task is to write a program that sums up integers. Every integer is in the range [-1000,1000]. There are at most 1000 integers. | + | Given a sequence of n (0 < n < 1001) integer numbers a_1 to a_n with 0 < a_i <100 |
+ | compute the sum of all the a_i. | ||
===== Input ===== | ===== Input ===== | ||
- | + | The first line contains a single integer n. The next n each contain a single integer | |
- | The input consists of one line containing all integers seperated by a single space. | + | representing the a_i |
===== Output ===== | ===== Output ===== | ||
- | The output contains only the sum. | + | Output the sum followed by a newline character. |
===== Sample Input ===== | ===== Sample Input ===== | ||
<code> | <code> | ||
- | 1 52 1000 -9 323 -1000 -325 | + | 3 |
+ | 1 | ||
+ | 2 | ||
+ | 42 | ||
</code> | </code> | ||
Zeile 21: | Zeile 25: | ||
<code> | <code> | ||
- | 42 | + | 45 |
</code> | </code> | ||
+ | ===== Beispielprogramme ===== | ||
- | ===== Java Code ===== | + | Hinweis: Die Zahlen müssen nicht erst in ein Array eingelesen werden, man |
+ | kann sich auch nur die aktuelle Summe merken. Die gewählte Variante dient nur | ||
+ | der Illustration von Arrays. | ||
- | **Compiler-Aufruf:** ''javac Main.java''\\ | + | === Quellcode in C === |
- | **Ausführung:** ''java Main'' | + | <code c> |
- | <code> | + | #include <stdio.h> |
- | import java.util.Scanner; | + | |
+ | #define MAX_ARRAY_SIZE 1000 | ||
+ | |||
+ | int array[MAX_ARRAY_SIZE]; | ||
+ | int array_size; | ||
+ | |||
+ | int main(){ | ||
+ | int i,sum; | ||
+ | // Mit scanf kann man einzelne ints einlesen. | ||
+ | scanf("%d", &array_size); | ||
- | class Main { | + | for(i=0; i<array_size; ++i){ |
- | public static void main(String[]args){ | + | // Liesst das naechste int ein (und ueberspringt dabei |
- | Scanner s = new Scanner(System.in); | + | // alle Leerzeichen, Tabs und Zeilenumbrueche). Das int |
- | + | // wir an die i-te Stelle des Arrays gespeichert. | |
- | int[] num = new int[1000]; | + | scanf("%d", array + i); |
- | + | } | |
- | + | ||
- | for(int i = 0; s.hasNextInt(); ++i) | + | // Nun verwenden wir die eingelesenen Daten |
- | num[i] = s.nextInt(); | + | sum = 0; |
- | + | for(i=0; i<array_size; ++i){ | |
- | int sum = 0; | + | sum += array[i]; |
- | for(int i=0; i<num.length; ++i) | + | } |
- | sum += num[i]; | + | |
- | + | // Mit printf kann man ints und Zeilenumbrueche ausgeben. | |
- | System.out.println(sum); | + | printf("%d\n", sum); |
- | } | + | |
+ | return 0; | ||
} | } | ||
</code> | </code> | ||
- | ===== C++ Code ===== | + | === Quellcode in C++ === |
- | **Compiler-Aufruf:** ''g++ -O2 -Wall yourfile.cpp'' | + | <code c++> |
- | **Ausführung:** ''./a.out'' | + | #include <iostream> |
- | <code> | ||
- | #include <iostream> | ||
using namespace std; | using namespace std; | ||
- | // Ein Array ist nicht wirklich notwendig. Es geht nur | + | const int MAX_ARRAY_SIZE = 1000;· |
- | // darum die Syntax zu zeigen. | + | |
- | int num_count; | + | // Arrays global anlegen um Stapeluberlaeufe zu vermeiden. |
- | int num[1000]; | + | int array[MAX_ARRAY_SIZE]; |
+ | int array_size; | ||
int main(){ | int main(){ | ||
- | num_count = 0; | + | // Mit cin kann man einzelne ints einlesen. |
- | while(cin>>num[num_count]) | + | cin >> array_size; |
- | ++num_count; | + | for(int i=0; i<array_size; ++i){ |
+ | // Liesst das naechste int ein (und ueberspringt dabei | ||
+ | // alle Leerzeichen, Tabs und Zeilenumbrueche). Das int | ||
+ | // wir an die i-te Stelle des Arrays gespeichert. | ||
+ | cin >> array[i]; | ||
+ | } | ||
- | int sum = 0; | + | // Nun verwenden wir die eingelesenen Daten |
- | for(int i=0; i<num_count; ++i) | + | int sum = 0; |
- | sum += num[i]; | + | for(int i=0; i<array_size; ++i){ |
+ | sum += array[i]; | ||
+ | } | ||
- | cout<<sum<<endl; | + | // Mit cout kann man ints und Zeilenumbrueche (endl) ausgeben. |
- | return 0; | + | cout << sum << endl; |
+ | |||
+ | return 0; | ||
} | } | ||
+ | |||
</code> | </code> | ||
- | ===== C code ===== | ||
- | **Compiler-Aufruf:** ''gcc -lm -O2 -Wall yourfile.cpp'' | + | === Quellcode in Java === |
+ | <code java> | ||
+ | import java.util.Scanner; | ||
- | **Ausführung:** ''./a.out'' | + | class Main { |
- | <code> | + | public static void main(String[] args) { |
- | #include <stdio.h> | + | Scanner s = new Scanner(System.in); |
+ | |||
+ | int array_size = s.nextInt(); | ||
+ | int[] array = new int[array_size]; | ||
+ | for(int i=0; i<array_size; ++i){ | ||
+ | array[i] = s.nextInt(); | ||
+ | } | ||
- | // Ein Array ist nicht wirklich notwendig. Es geht nur | + | int sum = 0; |
- | // darum die Syntax zu zeigen. | + | for(int i=0; i<array_size; ++i){ |
- | int num_count; | + | sum += array[i]; |
- | int num[1000]; | + | } |
- | int main(){ | + | System.out.println(sum); |
- | int i, sum; | + | } |
- | + | } | |
- | num_count = 0; | + | |
- | while(scanf("%d", &num[num_count]) > 0) | + | |
- | ++num_count; | + | |
- | sum = 0; | ||
- | for(i = 0; i<num_count; ++i) | ||
- | sum += num[i]; | ||
- | |||
- | printf("%d\n", sum); | ||
- | return 0; | ||
- | } | ||
</code> | </code> | ||
- | |||
- | |||
- | |||
- |