12th Monkey
Cadet 3rd Year
- Registriert
- Feb. 2010
- Beiträge
- 45
Ahoi ich bins schon wieder...
ich hoffe es ist in Ordnung, dass ich hier meine mittlerweile dritte C Anfrage wegen Übungen stelle - wenn nicht gebt einfach bescheid, dann wird das hier meine letze Anfrage sein!?
Diesmal geht es um eine "verschachtelte Schleife". Undzar sollen in zwei Feldern (a und b) jeweils 100 Zufallszahlen erstellt werden und im Ablauf des Programmes sollen verschiedene Dinge mit diesen Zufallszahlen angestellt werden.
Das eigentliche Problem dabei ist, dass ja in jedem Schritt die Zahlen verändert werden und somit das Programm während des Ablaufes immer "falscher" wird (ich hoffe ihr wisst was ich damit meine).
Um das zu umgehen erstelle ich vor jedem neuen Ablauf neue Zufallszahlen aber irgendwie ist das glaube ich nicht so im Sinne des Erfinders.
Hier ist das bisherige Resultat (es läuft durch und gibt keine Fehlermeldungen aus - aber stimmen tut es leider hinten und vorne nicht):
P.S.: Die Anordnung im Original ist schöner aber irgendwie zerreisst der Browser das immer ziemlich...
ich hoffe es ist in Ordnung, dass ich hier meine mittlerweile dritte C Anfrage wegen Übungen stelle - wenn nicht gebt einfach bescheid, dann wird das hier meine letze Anfrage sein!?
Diesmal geht es um eine "verschachtelte Schleife". Undzar sollen in zwei Feldern (a und b) jeweils 100 Zufallszahlen erstellt werden und im Ablauf des Programmes sollen verschiedene Dinge mit diesen Zufallszahlen angestellt werden.
Das eigentliche Problem dabei ist, dass ja in jedem Schritt die Zahlen verändert werden und somit das Programm während des Ablaufes immer "falscher" wird (ich hoffe ihr wisst was ich damit meine).
Um das zu umgehen erstelle ich vor jedem neuen Ablauf neue Zufallszahlen aber irgendwie ist das glaube ich nicht so im Sinne des Erfinders.
Hier ist das bisherige Resultat (es läuft durch und gibt keine Fehlermeldungen aus - aber stimmen tut es leider hinten und vorne nicht):
Code:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main( void ) {
const int size = 200;
float kleinste_zahl_1, kleinste_zahl_2, kleinste_zahl_3, groesste_zahl_1, groesste_zahl_2, groesste_zahl_3, a_werte_plus_b_werte;
float gesamtzahl_1, gesamtzahl_2, gesamtzahl_3, mittelwert_1, mittelwert_2, mittelwert_3, gesamt_a, gesamt_b;
float a[size], b[size];
int i, x, y;
kleinste_zahl_1 = RAND_MAX; groesste_zahl_1 = 0;
kleinste_zahl_2 = RAND_MAX; groesste_zahl_2 = 0;
kleinste_zahl_3 = RAND_MAX; groesste_zahl_3 = 0;
gesamtzahl_1 = 0; gesamtzahl_2 = 0; gesamtzahl_3 = 0;
gesamt_a = 0; gesamt_b = 0;
//Aufgabenteil 1 - Minimum, Maximum und Mittelwert des Feldes a berechnen...
for (i = 0; i <= size; i++) {
a[i] = (float) rand()/RAND_MAX; //Zufallszahlen in Feld a erzeugen
b[i] = (float) rand()/RAND_MAX; //Zufallszahlen in Feld b erzeugen
gesamtzahl_1 += a[i]; //Gesamtwert der aufaddierten a's ausrechnen
mittelwert_1 = gesamtzahl_1 / size; //Mittelwert aller addierten a's ausrechnen
if (a[i] < kleinste_zahl_1) { kleinste_zahl_1 = a[i]; } //Bestimmen des kleinsten Wertes aus den Zufallszahlen in Feld a
else if (a[i] > groesste_zahl_1) { groesste_zahl_1 = a[i]; } } //Bestimmen des größten Wertes aus den Zufallszahlen in Feld a
//Aufgabenteil 2 - Addiere elementweise die Werte aus a und b, speichere die resultierenden Werte wieder in a, Berechne dann wieder Minimum, Maximum und Mittelwert...
for (i = 0; i <= size; i++) {
a[i] = (float) rand()/RAND_MAX; //Zufallszahlen in Feld a erzeugen
b[i] = (float) rand()/RAND_MAX; //Zufallszahlen in Feld b erzeugen
gesamtzahl_2 = (gesamt_a += a[i]) + (gesamt_b += b[i]); //Gesamtwert aller addierten a's und b's ausrechnen
mittelwert_2 = gesamtzahl_2 / size; //Mittelwert aller addierten a's und b's ausrechnen
if (a[i] < kleinste_zahl_2) { kleinste_zahl_2 = x; //Bestimmen der kleinsten Zahl aus Feld a und Feld b
if (b[i] < x ) { x = a[i]; }}
if (a[i] < groesste_zahl_2) { groesste_zahl_2 = y; //Bestimmen der größten Zahl aus Feld a und Feld b
if (b[i] > y ) { x = a[i]; }} }
//Aufgabenteil 3 - Quadriere die Werte im Feld b und bestimme wiederum Minimum, Maximum und Mittelwert.
for (i = 0; i <= size; i++) {
a[i] = (float) rand()/RAND_MAX; //Zufallszahlen in Feld a erzeugen
b[i] = (float) rand()/RAND_MAX; //Zufallszahlen in Feld b erzeugen
gesamtzahl_3 *= b[i]; //Gesamtwert aller quadrierten b's ausrechnen
mittelwert_3 = gesamtzahl_3 / size; //Mittelwert aller quadrierten b's ausrechnen
if (b[i] < kleinste_zahl_3) { kleinste_zahl_3 = b[i]; } //Bestimmen der kleinsten Zahl der quadrierten b's
if (b[i] > groesste_zahl_3) { groesste_zahl_3 = b[i]; } } //Bestimmen der größten Zahl der quadrierten b's
printf("Es wurden insgesamt %d Zufallszahlen erzeugt\n\n", 2*size);
printf("Alle Werte aus Feld a addiert ergeben: %.2f\n\n", gesamtzahl_1);
printf("Die kleinste Zufallszahl aus Aufgabenteil 1 ist: %.2f\nDie groesste Zufallszahl aus Aufgabenteil 1 ist: %.2f\nDer Mittelert aus Aufgabenteil 1 ist: %.2f\n\n", kleinste_zahl_1, groesste_zahl_1, mittelwert_1);
printf("Werte aus Feld a addiert mit Werten aus Feld b= %.2f\n\n", gesamtzahl_2);
printf("Die kleinste Zufallszahl aus Aufgabenteil 2 ist: %.2f\nDie groesste Zufallszahl aus Aufgabenteil 2 ist: %.2f\nDer Mittelert aus Aufgabenteil 2 ist: %.2f\n\n", kleinste_zahl_2, groesste_zahl_2, mittelwert_2);
printf("Alle Werte aus Feld b multipliziert ergeben: %.2f\n\n", gesamtzahl_3);
printf("Die kleinste Zufallszahl aus Aufgabenteil 3 ist: %.2f\nDie groesste Zufallszahl aus Aufgabenteil 3 ist: %.2f\nDer Mittelert aus Aufgabenteil 3 ist: %.2f\n\n", kleinste_zahl_3, groesste_zahl_3, mittelwert_3);
printf("\n\nBitte Enter druecken um das Programm zu verlassen");
getchar();
return 0;
}
P.S.: Die Anordnung im Original ist schöner aber irgendwie zerreisst der Browser das immer ziemlich...