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

Πρόβλημα με εκτέλεση προγράμματος


deminho11

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

Δημοσ.

Είμαι καινούργιος στον προγραμματισμό και έφτιαξα αυτό το πρόγραμμα... Κάνω compile κανονικά μου βγάζει στην αρχή το μήνυμα που πρέπει και μολις δώσω μια τιμή και πατίσω Enter το πρόγραμμα σβήνει και βγάζει σφάλμα...

 

>#include    <stdio.h>
int main(void)
{
     int v1,v2,v3,v4,v5,mo;
     printf("Dwse tin ba8mologia\n");
     scanf("%d","%d","%d","%d","%d", &v1,&v2,&v3,&v4,&v5);
     mo=(v1+v2+v3+v4+v5)/5;
     if (mo<5)
              {
              printf("kopikes\n");
              }
     else if (mo<6 && mo>=5)
          {
          printf("kalos\n");
          }
     else if (mo>=6 && mo<8)
          {
          printf("lian kalos\n");
          }
     else {
          printf("arista\n");
          }
}                             

Δημοσ.

1. Χρησιμοποιείς λάθος σύνταξη στην εντολή scanf

2. (Κάτι που δεν προκαλεί το πρόβλημα εκτέλεσης στον κώδικά σου, αλλά είναι εντελώς περιττό) : Οι συνθήκες που έχεις μέσα στις εντολές if δεν χρειάζεται να είναι τόσο σύνθετες. Δες στο τέλος αυτού του μηνύματος πόσο πιο απλές μπορούν να γίνουν

3. Στο τέλος της συνάρτησης main, πρέπει να επιστρέφεται με την εντολή return μία ακέραια τιμή στο περιβάλλον της καλούσας διεργασίας (αυτή θα είναι συνήθως κάποιο κέλυφος). Κατά σύμβαση, για να υποδηλωθεί ότι το πρόγραμμα εκτελέστηκε χωρίς σφάλματα, επιλέγεται η τιμή 0 ως επιστρεφόμενη τιμή

4. Αν εκτελείς το πρόγραμμά σου σε Windows και μέσα από κάποιο ολοκληρωμένο περιβάλλον ανάπτυξης (IDE), το πρόγραμμα εκτελείται σε ένα παράθυρο όπως αυτό του Command Prompt, αλλά με τον τερματισμό του προγράμματος το παράθυρο αυτό κλείνει αστραπιαία χωρίς να σε αφήσει να δεις τα αποτελέσματα. Ένας μπακάλικος τρόπος για να το αποφύγεις είναι αμέσως πριν την εκτέλεση της εντολής return, να παγώσεις την εκτέλεση του προγράμματος με την χρήση κάποιας «ματσακονιάς», όπως την εισαγωγή μίας επιπλέον scanf, μίας κλήσης συστήματος που εκτελεί την εντολή pause (σε αυτήν την περίπτωση πρέπει να κάνεις include τη βιβλιοθήκη stdlib.h) κ.ά. Υπάρχουν βέβαια μερικά IDEs που αυτό το κάνουν αυτόματα, αλλά το αναφέρω γιατί είναι συχνό ερώτημα σε αυτό το forum

 

 

Ο κώδικάς σου, διορθωμένος βάσει των παραπάνω:

 

>#include <stdio.h>
#include <stdlib.h>

int main(void) {
   int v1, v2, v3, v4, v5, mo;

   printf("Dwse tin ba8mologia\n");
   scanf("%d %d %d %d %d", &v1, &v2, &v3, &v4, &v5);
   mo = (v1 + v2 + v3 + v4 + v5) / 5;

   if(mo < 5)
       printf("kopikes\n");
   else if(mo < 6)
       printf("kalos\n");
   else if(mo < 8)
       printf("lian kalos\n");
   else
       printf("arista\n");

   system("pause");
   return 0;
}

Δημοσ.

Αυτό εξαρτάται από τη διατύπωση του προβλήματος που θέλουμε να λύσουμε. Στο δοθέν πρόβλημα τουλάχιστον, δεν προκύπτει από κάπου ότι «πρέπει» να δηλωθεί και να υπολογιστεί ως float ο Μ.Ο.

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

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

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