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

πορβληματακι στη C


Odious

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

Δημοσ.

Καλησπερα μαγκες,εχω σκαλωσει σε ενα μαλλον απλο προβλημα αλλα σαν ψαρας στη c...

Λοιπον,το προβλημα λεε το εξης:Να γινει προγραμμα το οποιο θα επιστρεφει το αθροισμα και τον μεσο ορο ολων των ακεραιων του κλειστου διαστηματος [α,β] που ειναι ακεραια πολλαπλασια του 3...

Εχω κανει το παρακατω,μου φαινεται σωστο αλλα τα αποτελεσματα που βγαζει ειναι γτπ...

 

 

#include <stdio.h>

#include <stdlib.h>

main()

{

int a,b,i,sum=0,pl=0;float mo;

printf("dose tin arxi tou diastimatos:");

scanf("%d",&a);

printf("dose to telos tou diastimatos:");

scanf("%d",&B);

i=a;

while (i<=B)

{

if (i%3==0)

{

sum=sum+i;

pl=pl+1;

}

i++;

}

if (pl!=0)

mo=(float)sum/pl;

printf("athr=%d,mo=%f\n",sum,mo);

 

system("PAUSE");

return 0;

}

 

=============

Ευχαριστω

Δημοσ.

>#include <stdio.h>

main() {
   int a, b, i, sum = 0, pl = 0;
   float mo;

   printf("dose tin arxi tou diastimatos:");
   scanf("%d", &a);
   printf("dose to telos tou diastimatos:");
   scanf("%d", &;
   for (i = a; i <= b; i++) {
       if (i % 3 == 0) {
           sum = sum + i;
           pl = pl + 1;
       }
   }
   if (pl != 0) {
       mo = (float) sum / pl;
   }
   printf("\n\nathr=%d\nmo=%.2f\n\n", sum, mo);
   system("PAUSE");
   return 0;
}

 

 

Μια χαρά δουλεύει...!!:)

Δημοσ.

Μόλις δοκίμασα το πρόγραμμα που έκανες και

για τις εισόδους που έδωσα δουλεύει μια χαρά.

 

Και ο κώδικας μου φαίνεται δηλαδή σωστός.

 

Mπορείς να πείς για πιες εισόδους που δοκίμασες

βγάζει λάθος;

Δημοσ.

Ουσιαστικά υπολογίζεις το άθροισμα αριθμητικής προόδου με ω = 3.

 

>
#include <stdio.h>
#include <stdlib.h>
                              
int sum(int a, int b, int step)
{
 int n;                            
 a += (int[]){0, 2, 1}[(a % step)];
 n = (b - a)/step;                   
 return (n/2.0)*(2*a + (n - 1)*step);
}


int main(int argc, char **argv)
{
 if(argc < 4) {                                   
   printf("%s a b step\n", *argv ? *argv : "sum");
   return 0;
 }                                                                
 printf("%d\n", sum(atoi(argv[1]), atoi(argv[2]), atoi(argv[3])));
 return 0;
}

 

Παράδειγμα χρήσης στο command line:

>
$ sum 0 18 3
45

Οι πρώτοι δυο αριθμοί δεν χρειάζεται να είναι ακέραια πολλαπλάσια του τρίτου.

Δημοσ.

Με οτι αριθμους και να δοκιμασω,παιρνω λαθος νουμερο στο αθροισμα...

Ευχαριστω για τον χρονο παντως!

Δημοσ.
Με οτι αριθμους και να δοκιμασω,παιρνω λαθος νουμερο στο αθροισμα...

Ευχαριστω για τον χρονο παντως!

 

Με ποιον compiler δουλευεις;

Δημοσ.
Με οτι αριθμους και να δοκιμασω,παιρνω λαθος νουμερο στο αθροισμα...

Ευχαριστω για τον χρονο παντως!

 

δηλαδή για διάστημα [1,10]

τι περιμένεις για αποτέλεσμα?

 

και τι αποτέλεσμα παίρνεις?

Δημοσ.

Ενταξει ολα καλα,ο gcc την επινε...

Ευχαριστω για τις απαντησεις παιδια

 

---------- Προσθήκη στις 01:48 ---------- Προηγούμενο μήνυμα στις 01:40 ----------

 

Βασικα δικο μου λαθος,καθολου δε την επινε ο gcc.Ειχα καταλαβει λαθος τα αποτελεσματα.Bill_cs,τωρα το πιασα.

Ευχαριστω και παλι!

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

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

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