Last active
August 29, 2015 14:08
-
-
Save gph03n1x/0fadd4c95fdb0fa33a05 to your computer and use it in GitHub Desktop.
Ασκήσεις Εργαστηρίου
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <locale.h> /* για ελληνικούς χαρακτήρες */ | |
#include <conio.h> /* για το getch */ | |
int main() { | |
setlocale(LC_ALL, ""); /* για ελληνικούς χαρακτήρες */ | |
/* Καταχώρηση μεταβλητών */ | |
int number; | |
char singl_c; | |
float num1, num2; | |
/* Δεχόμαστε την είσοδο */ | |
printf("%ls", L"Πληκτρολογήστε ένα χαρακτήρα:"); | |
scanf("%c", &singl_c); | |
printf("%ls", L"Πληκτρολογήστε ένα αριθμό:"); | |
scanf("%d", &number); | |
printf("%ls %c\n", L"Ο χαρακτήρας που δώσατε είναι ο", singl_c); | |
printf("%ls %d\n", L"Ο αριθμός που δώσατε είναι ο", number); | |
printf("%ls", L"Πληκτρολογήστε δύο αριμούς διαχωρισμένους με κόμμα: "); | |
scanf("%f,%f", &num1, &num2); | |
/* υπολογισμοί */ | |
printf("%.1f+%.1f=%.1f\n", num1, num2, num1+num2); | |
printf("%.1f-%.1f=%.1f\n", num1, num2, num1-num2); | |
printf("%.1f*%.1f=%.1f\n", num1, num2, num1*num2); | |
printf("Type anything to exit..."); | |
getch(); /* παγώνει το πρόγραμμα μέχρι να πατήσει κάτι ο χρήστης ώστε | |
να προλάβει να δει την έξοδο*/ | |
return 0; | |
} | |
/* EOF */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <locale.h> | |
#include <conio.h> /* για την getch */ | |
int main() { | |
setlocale(LC_ALL, ""); | |
/* καθορίζουμε τον τύπο των μεταβλητών */ | |
char calc_action; | |
char *continue_action, *confirm_continue = "yes"; | |
float num1, num2; | |
int loop_bool = 1; | |
/* εκχωρούμε το input */ | |
printf("%ls (+,-,*,/): ", L"Πληκτρολογήστε την πράξη που θες να πραγματοποιηθεί"); | |
scanf("%c", &calc_action); | |
printf("%ls: ", L"Δώσε δύο αριθμούς διαχωρισμένους με κενό"); | |
scanf("%f %f", &num1, &num2); | |
while (loop_bool == 1){ | |
printf("Debug : %c %f %f ", calc_action, num1, num2); | |
/* υπολογισμοί */ | |
if (calc_action == '+') { | |
printf("%ls %.1f , %.1f = %.1f\n", L"Το αποτέλεσμα της + μεταξύ των αριθμών", num1, num2, num1+num2); | |
} else if (calc_action == '-') { | |
printf("%ls %.1f , %.1f = %.1f\n", L"Το αποτέλεσμα της - μεταξύ των αριθμών", num1, num2, num1-num2); | |
} else if (calc_action == '*') { | |
printf("%ls %.1f , %.1f = %.1f\n", L"Το αποτέλεσμα της * μεταξύ των αριθμών", num1, num2, num1*num2); | |
} else if ((calc_action == '/') && (num2 != (float)0)) { | |
printf("%ls %.1f , %.1f = %.1f\n", L"Το αποτέλεσμα της / μεταξύ των αριθμών", num1, num2, num1/num2); | |
} else { | |
printf("Invalid action...\n"); | |
} | |
printf("%ls (yes): ", L"θέλετε να κάνετε κάποια άλλη πράξη"); | |
scanf("%s", continue_action); | |
fseek(stdin,0,SEEK_END); | |
if (strcmp(continue_action, confirm_continue) != 0) { | |
loop_bool = 0; | |
} else { | |
system("cls"); | |
printf("%ls (+,-,*,/): ", L"Πληκτρολογήστε την πράξη που θες να πραγματοποιηθεί"); | |
scanf("%c", &calc_action); | |
printf("%ls: ", L"Δώσε δύο αριθμούς διαχωρισμένους με κενό"); | |
scanf("%f %f", &num1, &num2); | |
} | |
} | |
printf("Type anything to exit..."); | |
getch(); /* παγώνει το πρόγραμμα μέχρι να εισάγει κάτι ο χρήστης ώστε | |
να μην τερματιζει απότομα ώστε να προλάβει να διαβάσει το output*/ | |
return 0; | |
} | |
/* EOF */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
int main() { | |
int previous, next, last; | |
next = 1; | |
last = 1000; | |
for (previous = 0; previous < last; previous++){ | |
printf("%d \n", previous); | |
next = next + previous; | |
previous = next - previous - 1; | |
} | |
return 0; | |
}/* EOF */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
int main() { | |
char option, answer; | |
float number; | |
do { | |
printf("Menu :\n"); | |
printf("1)Celsius to fahreneit\n"); | |
printf("2)Fahreneit to celsius\n"); | |
printf("Choose which conversion you want: "); | |
scanf("%c", &option); | |
fseek(stdin,0,SEEK_END); | |
if (option == '1') { | |
printf("Please enter the temperature: "); | |
scanf("%f", &number); | |
fseek(stdin,0,SEEK_END); | |
number = number * 9 / 5 + 32; | |
printf("The result is : %f\n", number); | |
} else if (option == '2') { | |
printf("Please enter the temperature: "); | |
scanf("%f", &number); | |
fseek(stdin,0,SEEK_END); | |
number = (number - 32) * 5 / 9; | |
printf("The result is : %f\n", number); | |
} else { | |
printf("The option you chose doesn't exist...\n"); | |
} | |
printf("Do you want to make another conversion (y/n):"); | |
scanf("%c", &answer); | |
fseek(stdin,0,SEEK_END); | |
if ((answer != 'y') && (answer != 'Y')) { | |
break; | |
} | |
} while (1); | |
return 0; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <conio.h> | |
int main() { | |
int i,j, pinakas[8][8]; | |
for (i=0; i<8; ++i){ | |
for (j=0; j<8; ++j) { | |
pinakas[i][j] = i + j + 1; | |
} | |
} | |
for (i=0; i<8; ++i){ | |
printf("\t"); | |
for (j=0; j<8; ++j) { | |
printf("%d\t", pinakas[i][j]); | |
} | |
printf("\n"); | |
} | |
getch(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <conio.h> | |
int main() { | |
float average, age, male_age[10], female_age[10]; | |
int people_ar, count, gender, person_count[2]; /* | |
* 0 stands for females , | |
* 1 for males | |
*/ | |
person_count[0] = 0; | |
person_count[1] = 0; | |
for (people_ar = 0; people_ar < 10; people_ar++) { | |
do { | |
printf("Give gender (0 for female, 1 for male):"); | |
scanf("%d", &gender); | |
} while (gender != 1 && gender != 0); | |
person_count[gender]++; | |
do { | |
printf("Give age:"); | |
scanf("%f", &age); | |
} while (gender > 100 || gender < 0); | |
if (gender == 1) { | |
male_age[person_count[gender] - 1] = age; | |
} else { | |
female_age[person_count[gender] - 1] = age; | |
} | |
} | |
average = 0; | |
for (count = 0; count < person_count[0]; count++) { | |
average += male_age[count]; | |
} | |
printf("Male average: %.1f\n", average / person_count[1]); | |
average = 0; | |
for (count = 0; count < person_count[1]; count++) { | |
average += female_age[count]; | |
} | |
printf("Male average: %.1f\n", average / person_count[0]); | |
getch(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <conio.h> | |
int main() { | |
int i, pinakas[10]; | |
int min, max; | |
scanf("%d", &pinakas[0]); | |
min = pinakas[0]; | |
max = pinakas[0]; | |
for (i=1; i<10; i++) { | |
scanf("%d", &pinakas[i]); | |
if (pinakas[i] > max) { | |
max = pinakas[i]; | |
} | |
if (pinakas[i] < min) { | |
min = pinakas[i]; | |
} | |
} | |
for (i=0; i<10; i++) { | |
printf("Max: %d\n Min: %d\n Max-Min: %d\n", max, min, max-min); | |
} | |
getch(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <conio.h> | |
#define SIZE 11 | |
int binary_search(int my_array[], int key); | |
int main() { | |
int key, pass, column, temp, result; | |
int my_array[SIZE] = {65, 89, 4, 35, 12, 47, 9, 7, 100, 32, 60}; | |
printf("Give a search key:"); | |
scanf("%d", &key); | |
for (pass = 0 ; pass < SIZE - 1; pass++) { | |
for (column = 0; column < SIZE - 1; column++) { | |
if (my_array[column] > my_array[column + 1]) { | |
temp = my_array[column]; | |
my_array[column] = my_array[column + 1]; | |
my_array[column + 1] = temp; | |
} | |
} | |
} | |
result = binary_search(my_array, key); | |
if ( result == -1 ) { | |
printf("key not found\n"); | |
} else { | |
printf("key found at position: %d", result); | |
} | |
getch(); | |
} | |
int binary_search(int my_array[], int key) { | |
int low = 0, high = SIZE - 1, middle; | |
while ( low <= high ){ | |
middle = ( low + high ) / 2; | |
if ( key == my_array[ middle ] ) { | |
return middle; | |
} else if ( key < my_array[ middle ]) { | |
high = middle - 1; | |
} else { | |
low = middle + 1; | |
} | |
} | |
return -1; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <conio.h> | |
#define SIZE 11 | |
int main() { | |
int key, pass, column, temp; | |
int my_array[SIZE] = {65, 89, 4, 35, 12, 47, 9, 7, 100, 32, 60}; | |
/* used array example from exercise 8 */ | |
for (pass = 0 ; pass < SIZE - 1; pass++) { | |
for (column = 0; column < SIZE - 1; column++) { | |
if (my_array[column] < my_array[column + 1]) { /* modified part */ | |
temp = my_array[column]; | |
my_array[column] = my_array[column + 1]; | |
my_array[column + 1] = temp; | |
} | |
} | |
} | |
for (column = 0; column < SIZE; column++) { | |
printf(" %d ", my_array[column]); | |
} | |
getch(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <conio.h> | |
#define SIZE 11 | |
int main() { | |
int key, pass, column, temp; | |
int my_array[SIZE] = {65, 89, 4, 35, 12, 47, 9, 7, 100, 32, 60}; | |
/* used array example from exercise 8 */ | |
int swapped; | |
for (pass = 0 ; pass < SIZE - 1; pass++) { | |
swapped = 0; | |
for (column = 0; column < SIZE - 1; column++) { | |
if (my_array[column] > my_array[column + 1]) { | |
temp = my_array[column]; | |
my_array[column] = my_array[column + 1]; | |
my_array[column + 1] = temp; | |
swapped = 1; | |
} | |
} | |
if (swapped == 0) break; | |
} | |
for (column = 0; column < SIZE; column++) { | |
printf("[%d] %d ", column,my_array[column]); | |
} | |
getch(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment