Odious Δημοσ. 13 Ιανουαρίου 2010 Δημοσ. 13 Ιανουαρίου 2010 Καλησπερα μαγκες,εχω σκαλωσει σε ενα μαλλον απλο προβλημα αλλα σαν ψαρας στη 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",&; i=a; while (i<= { 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; } ============= Ευχαριστω
karabouzouk... Δημοσ. 13 Ιανουαρίου 2010 Δημοσ. 13 Ιανουαρίου 2010 >#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; } Μια χαρά δουλεύει...!!
Odious Δημοσ. 13 Ιανουαρίου 2010 Μέλος Δημοσ. 13 Ιανουαρίου 2010 Δε παιρνω σωστα αποτελεσματα ρε γμτ.Σωστο μου φαινεται και μενα. Thanx
bab1s Δημοσ. 13 Ιανουαρίου 2010 Δημοσ. 13 Ιανουαρίου 2010 Μόλις δοκίμασα το πρόγραμμα που έκανες και για τις εισόδους που έδωσα δουλεύει μια χαρά. Και ο κώδικας μου φαίνεται δηλαδή σωστός. Mπορείς να πείς για πιες εισόδους που δοκίμασες βγάζει λάθος;
C6WGMN Δημοσ. 13 Ιανουαρίου 2010 Δημοσ. 13 Ιανουαρίου 2010 Ουσιαστικά υπολογίζεις το άθροισμα αριθμητικής προόδου με ω = 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 Οι πρώτοι δυο αριθμοί δεν χρειάζεται να είναι ακέραια πολλαπλάσια του τρίτου.
Odious Δημοσ. 13 Ιανουαρίου 2010 Μέλος Δημοσ. 13 Ιανουαρίου 2010 Με οτι αριθμους και να δοκιμασω,παιρνω λαθος νουμερο στο αθροισμα... Ευχαριστω για τον χρονο παντως!
jstark Δημοσ. 13 Ιανουαρίου 2010 Δημοσ. 13 Ιανουαρίου 2010 Με οτι αριθμους και να δοκιμασω,παιρνω λαθος νουμερο στο αθροισμα...Ευχαριστω για τον χρονο παντως! Με ποιον compiler δουλευεις;
virxen75 Δημοσ. 13 Ιανουαρίου 2010 Δημοσ. 13 Ιανουαρίου 2010 Με οτι αριθμους και να δοκιμασω,παιρνω λαθος νουμερο στο αθροισμα...Ευχαριστω για τον χρονο παντως! δηλαδή για διάστημα [1,10] τι περιμένεις για αποτέλεσμα? και τι αποτέλεσμα παίρνεις?
Bill_cs Δημοσ. 13 Ιανουαρίου 2010 Δημοσ. 13 Ιανουαρίου 2010 εμενα σε gcc σωστα τα βγαζει για [1,10] αθροισμα: 18(3+6+9) μ.ο: 6
Odious Δημοσ. 14 Ιανουαρίου 2010 Μέλος Δημοσ. 14 Ιανουαρίου 2010 Ενταξει ολα καλα,ο gcc την επινε... Ευχαριστω για τις απαντησεις παιδια ---------- Προσθήκη στις 01:48 ---------- Προηγούμενο μήνυμα στις 01:40 ---------- Βασικα δικο μου λαθος,καθολου δε την επινε ο gcc.Ειχα καταλαβει λαθος τα αποτελεσματα.Bill_cs,τωρα το πιασα. Ευχαριστω και παλι!
ippo00 Δημοσ. 14 Ιανουαρίου 2010 Δημοσ. 14 Ιανουαρίου 2010 χαχα, κλασσικό λάθος αρχάραιου να κατηγορεί το compiler xD
tespa_2002 Δημοσ. 14 Ιανουαρίου 2010 Δημοσ. 14 Ιανουαρίου 2010 Όπως έχει πει και ένας φίλος στο http://cgi.di.uoa.gr/~ip/ Οι υπολογιστές έχουν ένα καλό και ένα κακό: Το καλό είναι ότι κάνουν ακριβώς Ο,ΤΙ ΤΟΥΣ ΠΕΙΣ. Το κακό είναι ότι κάνουν ΑΚΡΙΒΩΣ ό,τι τους πεις.
ippo00 Δημοσ. 15 Ιανουαρίου 2010 Δημοσ. 15 Ιανουαρίου 2010 Ναι μωρέ απλά κάνουν και πράγματα που τους έχουν πει άλλοι και νομίζεις ότι ο άλλος είπε άλλα και...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.