C program for schleife?

2 Antworten

hier ist der Source Code dazu:

int* zahlenfolge = NULL;
	int laengeZahlenfolge = 0;
	int summe = 0;
	float mittelwert = 0;
	int min = 0;
	int max = 0;


	printf("Bitte geben Sie an wie lang die Zahlenfolge sein soll: ");
	scanf("%d", &laengeZahlenfolge);


	zahlenfolge = (int*)malloc(sizeof(int) * laengeZahlenfolge);
	int counter = 0;


	printf("\n\n Eingabe der Zahlenfolge:\n");
	while (counter < laengeZahlenfolge)
	{
		printf("\tBitte geben Sie eine Zahl ein: ");
		scanf("%d", (zahlenfolge + counter));
		counter++;
	}
	printf("\nEingabe der Zahlenfolge beendet-------------------------\n");




	
	for (int i = 0; i < laengeZahlenfolge; i++)
	{
		summe += *(zahlenfolge + i);
	}


	mittelwert = summe / (laengeZahlenfolge * 1.0f);
	min = *(zahlenfolge);


	for (int i = 0; i < laengeZahlenfolge; i++)
	{
		if (min > *(zahlenfolge + i))
			min = *(zahlenfolge + i);


		if (max < *(zahlenfolge +i))
		{
			max = *(zahlenfolge + i);
		}
	}


	printf("\nDie Summe der Zahlenfolge betraegt %d\n", summe);
	printf("Der Mittelwert der Zahlenfolge betraegt %f\n", mittelwert);
	printf("Der kleinste Wert der Zahlenfolge betraegt %d\n", min);
	printf("Der groeßte der Zahlenfolge betraegt %d\n", max);


gencc 
Fragesteller
 25.02.2021, 23:41
#include <stdio.h>
#include <stdlib.h>


int main()
{
    int zeichenkette;
    
    // abfragen wie lange unser zeichenkette sein soll
    printf("Wie viele Zahlen wollen sie eingeben: ", zeichenkette);
    scanf("%i", &zeichenkette);


    
    // hier wird die länge des arrays bestimmt
    int* array = malloc(zeichenkette * sizeof(int));




    // deklaration
    int sum = 0;
    int lowest = 32767;
    int max = 0;






    for(int i = 0; i < zeichenkette; i++) {
    
        // zahl angabe, diese wird zum array hinzugefügt
        printf("Geben sie eine Zahl an:  \n");
        scanf("%d", &array[i]);
        printf("MAX: %i \nMIN: %i \n", max, lowest);
        
        // Der summe wird immer mit der geradden array integer addiert
        sum = sum + array[i];
        
        // wenn eine zahl gröẞer als = ist dann max variable überschreiben
        if(max < array[i]) {
            max = array[i];
        };


        // wenn es eine zahl in der array kleiner als 32767 gibt dann überschreiben
        if(lowest > array[i]) {
            lowest = array[i];
        };


    };


    
    // da wir die summe schon haben und in die zeichenkette variable die länge haben können wir der mittelwert berechnen
    int mittelwert = sum/zeichenkette;
    
    // Ausgabe
    printf("Summe: %i \nMittelwert: %i\nMax: %i\nMin: %i\n", sum, mittelwert, max, lowest);


}

Ich habe es schon selber geschafft, ich habe nur eine frage, wie beende ich jetzt eigentlich mein Programm wenn Enter gedrückt wird? Also wenn z.b keine Zeichenkette (die länge) nicht angegeben wird.

Es ist ein Konsolen- Applikation.

0
Mike0x07C9  25.02.2021, 23:55
@gencc

char eingabe = 0;

printf("\n\n");

while (eingabe != '\n')

{

printf("Bitte druecken Sie die Enter-Taste: ");

scanf("%c", &eingabe);

eingabe = 0;

scanf("%c", &eingabe); // Da im Input-Steam noch Werte sein kann führe ich diesen Befehl 2 mal aus

}

exit(0);

0
crc32  26.02.2021, 00:27

OT: Ist 1993 dein Geburtsjahr? :)

0

Es soll eine Zeichenfolge eingegeben werden kein max und min wert.

Woher ich das weiß:Hobby – Ich interessiere mich für das programmieren und Informatik
gencc 
Fragesteller
 25.02.2021, 21:50

Wie ist das gemeint, soll ich eine printf for schleife machen wie oft printf ausgegeben werden soll und dann mit diese zahlen die summe etc. berechnen?

0
gencc 
Fragesteller
 25.02.2021, 21:52
@EnderLuca

Ja, das Problem ist wir haben Arrays bisher nicht gemacht, in der Aufgabe wurde es auch nicht erwähnt, ich kenne mich schon mit JavaScript aus und wenn ich dort etwas benutzt habe was wir nicht gemacht haben würde es nicht als Punkt zählen...

0
EnderLuca  25.02.2021, 21:54
@gencc

Das ganze ist nur Mithilfe eines Arrays oder ähnlichem zu Lösen.

0
gencc 
Fragesteller
 25.02.2021, 21:56
@EnderLuca

Ja, dann mach ich es einfach mit eine Array.

Also sind meine Schritte richtig?

  • 2 Zahlen abfragen
  • die for-zwischen diese 2 zahlen durchlaufen;
  • alle Zahlen in die array einpacken
  • die summe etc berechnen
0
EnderLuca  25.02.2021, 21:57
@gencc

Einen Array Abfragen ist schwierig, ich würde das gar nicht erst machen. Also einfach am Anfang des Programms ein Array erschaffen und das wars.

0
gencc 
Fragesteller
 25.02.2021, 22:09
@EnderLuca

Was meinst du damit, wofür brauche ich dann die Array?

0
EnderLuca  25.02.2021, 22:20
@gencc

Es wird von einer "Zahlenfolge" geredet in der Aufgaben Stellung zB 3,7,6,0,10,67,4.

Und so eine zahlenfolge kann man eigentlich nur so richtig mit einem Array umsetzten.

0
gencc 
Fragesteller
 25.02.2021, 22:55
@EnderLuca
#include <stdio.h>
#include <stdlib.h>


int main()
{
    int zeichenkette;
    printf("Wie viele Zahlen wollen sie eingeben: ", zeichenkette);
    scanf("%i", &zeichenkette);


    int* array = malloc(zeichenkette * sizeof(int));


    int sum = 0;
    int min = array[0];
    int max = array[0];
    for(int i = 0; i < zeichenkette; i++) {
        printf("Geben sie eine Zahl an:  \n");
        scanf("%d", &array[i]);
        sum = sum + array[i];
        if(max < array[i]) {
            max = array[i];
        };


        if(min > array[i]) {
            min = array[i];
        };
    };


    int mittelwert = sum/zeichenkette;
    printf("Summe: %i \nMittelwert: %i\nMax: %i\nMin: %i\n", sum, mittelwert, max, min);


}

Ich habe jetzt das alles, und alle ausgaben sind richtig bis auf den min integer, bei dem kommt immer 0 als Ausgabe, hast du vielleicht ein plan warum das so ist?

0