Σημειώσεις για πρόοδο στο εργαστήριο 5 Απριλίου 2012 1. Γράψτε πρόγραμμα το οποίο τυπώνει τους αριθμούς από 1 έως 10 σε μία γραμμή τον καθένα. 3 int i; 4 for (i = 0; i < 10; ++i) 5 printf("%d\n", i); 6 return 0; 7 } 2. Γράψτε πρόγραμμα το οποίο τυπώνει το τρίγωνο 1 22 333 4444 55555 3 int i, j; 4 for (i = 1; i <= 5; ++i) { 5 for (j = 0; j < i; ++j) 6 printf("%d", i); 7 printf("\n"); 8 } 9 return 0; 10 } 3. Γράψτε πρόγραμμα το οποίο τυπώνει το τρίγωνο 5 44 333 1
2222 11111 3 int i, j; 4 for (i = 5; i >= 1; --i) { 5 for (j = 0; j < 5 - i + 1; ++j) 6 printf("%d", i); 7 printf("\n"); 8 } 9 return 0; 10 } 4. Γράψτε πρόγραμμα το οποίο ζητάει δύο αριθμούς από το πληκτρολόγιο και τυπώνει τον μικρότερο από αυτούς. 3 int a, b; 4 printf("dose ton proto arithmo: "); scanf("%d", &a); 5 printf("dose ton deutero arithmo: "); scanf("%d", &b); 6 if (a < b) 7 printf(" Mikroteros eivai o %d\n", a); 8 else 9 printf(" Mikroteros eivai o %d\n", b); 10 return 0; 11 } 5. Γράψτε πρόγραμμα το οποίο ζητάει διαρκώς από το πληκτρολόγιο αριθμούς τους οποίους και αθροίζει. Σταματάει όταν ο χρήστης δώσε ιστο πληκτρολόγιο την τιμή μηδέν. Τελικά τυπώνει το άθροισμα. 3 int a, sum; 4 sum = 0; 5 do { 6 printf(" Dose evav arithmo (0 gia telos): "); 7 scanf("%d", &a); 8 sum += a; 9 } while (a!= 0); 10 printf(" To athroisma eivai %d\n", sum); 11 return 0; 12 } 2
6. Γράψτε ένα πρόγραμμα όπως το πρηγούμενο το οποίο όμως θα τυπώνει και το μέσο όρο των αριθμών. Μην εξετάσετε περίπτωση διαίρεσης με το μηδέν. 3 int a, sum, count; 4 sum = 0; 5 count = 0; 6 do { 7 printf(" Dose evav arithmo (0 gia telos): "); 8 scanf("%d", &a); 9 sum += a; 10 count ++; 11 } while (a!= 0); 12 printf(" To athroisma eivai %d kai o mesos oros %f\n", sum, sum / ( count - 1.) 13 return 0; 7. Γράψτε ένα πρόγραμμα το οποίο ζητάει έναν αριθμό από τον χρήστη και υπολογίζει αν ο αριθμός είναι πρώτος ή όχι. Πρώτος είναι ένας αριθμός ίσος ή μεγαλύτερος από το 2 ο οποίος διαιρείται μόνο με τον εαυτό του και τη μονάδα. 3 int a, i; 4 printf(" Dose enan arithmo: "); 5 scanf("%d", &a); 6 for (i = 2; i < a; ++i) 7 if (a % i == 0) 8 break; 9 if (i == a a == 2) 10 printf("o arithmos eivai prwtos\n"); 11 else 12 printf("o arithmos dev eivai prwtos\n"); 13 return 0; 8. Να γραφεί πρόγραμμα C στο οποίο δίνονται η βάση και ο εκθέτης και υπολογίζει τη δύναμη. Υποθέστε ότι ο χρήστης δεν θα δώσει αρνητικό εκθέτη. 3 int base, exponent, result, i; 4 printf("dose tn basn: "); scanf("%d", &base); 5 printf("dose ton ekthetn: "); scanf("%d", &exponent); 6 result = 1; 7 for (i = 0; i < exponent; ++i) 3
8 result *= base; 9 printf(" To apotelesma einai %d\n", result); 10 return 0; 11 } 9. Να γραφεί πρόγραμμα C το οποίο ζητάει από το χρήστη να δώσει πέντε ακέραιες τιμές τις οποίες και αποθηκεύει σε έναν πίνακα. Στη συνέχεια βρίσκει την μικρότερη από αυτές και την τυπώνει. 3 char p[5]; 4 int i; 5 int mik; 6 for (i = 0; i < 5; ++i) { 7 printf("dose evav arithmo: "); scanf("%d", &p[i]); 8 } 9 mik = p[0]; 10 for (i = 1; i < 5; ++i) 11 if (p[i] < mik) 12 mik = p[i]; 13 printf("h mikrotern eivai n %d\n", mik); 14 return 0; 15 } 10. Να γραφεί πρόγραμμα C το οποίο ζητάει από το χρήστη να πληκτρολογήσει μία συμβολοσειρά και βρίσκει πόσες φορές εμφανίζεται σε αυτήν ο χαρακτήρας a. 4 char s[100]; 5 int i; 6 int count = 0; 7 printf(" Dose mia symvoloseira: "); gets(s); 8 9 for (i = 0; i < strlen(s); ++i) 10 if (s[i] == 'a') 11 ++count; 12 printf("o xaraktnras a emfavizetai %d fores\n", count); 13 return 0; 11. Να γραφεί πρόγραμμα C το οποίο ζητάει από το χρήστη να πληκτρολογήσει μία συμβολοσειρά, την αντιστρέφει και την τυπώνει στην οθόνη. 4
4 char s[100], c; 5 int i, j; 6 printf(" Dose mia symvoloseira: "); gets(s); 7 8 i = 0; j = strlen(s) - 1; 9 while (i < j) { 10 c = s[i]; 11 s[i] = s[j]; 12 s[j] = c; 13 ++i; --j; 15 printf(" Avapoda: %s\n", s); 16 return 0; 17 } 12. Να γραφεί πρόγραμμα C το οποίο ζητάει από το χρήστη να πληκτρολογήσει μία συμβολοσειρά και υπολογίζει αν η συμβολοσειρά είναι καρκινική ή όχι (καρκινική είναι μία γραφή που διαβάζεται και ανάποδα). 4 char s[100]; 5 int i, j; 6 printf(" Dose mia symvoloseira: "); gets(s); 7 8 i = 0; j = strlen(s) - 1; 9 while (i < j) { 10 if (s[i] == s[j]) { 11 ++i; --j; 12 } 13 else 14 break; 15 } 16 if (i < j) 17 printf(" Dev eivai karkiviki\n"); 18 else 19 printf(" Eivai karkiviki\n"); 20 return 0; 21 } 13. Να γραφεί πρόγραμμα C το οποίο ζητάει από το χρήστη να πληκτρολογήσει μία συμβολοσειρά και στη συνέχεια μετατρέπει τους πεζούς χαρακτήρες της σε κεφαλαίους και τους κεφαλαίους 5
σε πεζούς. 4 char s[100]; 5 int i; 6 printf(" Dose mia symvoloseira: "); gets(s); 7 for (i = 0; i < strlen(s); ++i) 8 if (s[i] >= 'a' && s[i] <= 'z') 9 s[i] -= 'a' - 'A'; 10 else if (s[i] >= 'A' && s[i] <= 'z') 11 s[i] -= 'A' - 'a'; 12 printf(" Telika: %s\n", s); 13 14 return 0; 15 } 6