Προς το περιεχόμενο

Απορία στη C


Helenaki_Thess

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σε ολους!

Είμαι καινούρια στον προγραμματισμό και μου έχει ζητηθεί το εξής :

 

Να διαβαστούν οι βαθμοί 10 μαθητών και να υπολογισθεί ο μέσος ορός των βαθμών τους.

 

Εγώ έγραψα τον παρακάτω κώδικα ο οποίος λειτούργησε σωστά...

 

#include <stdio.h>

void main ()

{

int metr;

int synolo=0;

float average;

int va8m;

for(metr=1;metr<6;metr++)

{

printf("Dwse va8mo gia to ma8ima %d: ",metr);

scanf("%d",&va8m);

synolo=synolo+va8m;

}

average=synolo/5;

printf("o mesos oros einai %.2f",average);

}

 

 

 

αλλά στην συνεχεία μου ζητήθηκε και κάτι παραπάνω στο οποίο έχω κολλήσει :shock:

 

Αν ο βαθμός είναι μικρότερος του 0 η μεγαλύτερος του 20 δεν θεωρείται έγκυρος

 

Μπορεί να με βοηθήσει κανένας σε αυτό?

Δημοσ.

Καταρχην, λες οτι θες το Μ.Ο 10 βαθμων και υπολογιζεις για 5!

 

Για το δευτερο, πρεπει μεσα στο for loop να βαλεις και ελεγχο για το βαθμο. Ενας ευκολος τροπος ειναι ο εξης

 

>
for(metr=1;metr<6;metr++)
{
printf("Dwse va8mo gia to ma8ima %d: ",metr);
scanf("%d",&va8m);
if ((va8m<0) || (va8m>20)) {
printf("Lathos vathmos. Xanadoste");
metr--;
} else {
synolo=synolo+va8m;
}
}

 

δεν το ετρεξα, οποτε μπορει να μου εχει ξεφυγει κανενα λαθος αλλα καταλαβαινεις πιστευω τι παω να κανω.

Δημοσ.

Εναλλακτικά

 

>
int counter = 0;
while( (va8mos<0 || va8mos>20) && (counter<10)){

  printf("Dwse va8mo gia to ma8ima %d: ",metr);
  scanf("%d",&va8m);
 if (va8mos<0 || va8mos>20){
        printf("Mi eguros va8mos");
 }else{
     synolo=synolo+va8m;
     counter++;
 }
}

Δημοσ.

Τελικά κατέληξα σ αυτο :

 

#include <stdio.h>

void main ()

{

int metr;

int synolo=0;

float average;

int va8m;

for(metr=1;metr<11;metr++)

{

printf("Dwse va8mo gia to ma8ima %d: ",metr);

scanf("%d",&va8m);

if ((va8m<0) || (va8m>20)) {

printf("Lathos vathmos. Dokimase ksana \n");

metr--;

} else {

}

synolo=synolo+va8m;

}

average=synolo/10;

printf("o mesos oros einai %.2f",average);

}

Δημοσ.

Το

synolo=synolo+va8m;

πρεπει να ειναι μεσα στο else { }

Ετσι οπως ειναι τωρα προσθετει στο συνολο και τους λαθος βαθμους

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...