#include #include #include #include void diziYaz(int dizi[], int diziUzn, char baslik[]) { int i; printf("\n%s:\t", baslik); for (i = 0; i < diziUzn; i++) { printf("%d\t", dizi[i]); } } float ortalama(int dizi[], int diziUzn) { int i; float toplam = 0; for (i = 0; i < diziUzn; i++) { toplam += dizi[i]; } return (toplam / diziUzn); } int *siralaAzalan(int dizi[], int diziUzn) { static int* yeniDizi; yeniDizi = (int*)malloc(diziUzn * sizeof(int)); int i, j, tmp; for (i = 0; i < diziUzn; i++) { yeniDizi[i] = dizi[i]; } for (i = 0; i < diziUzn; i++) { for (j = 0; j < diziUzn - i - 1; j++) { if (yeniDizi[j] < yeniDizi[j + 1]) { tmp = yeniDizi[j]; yeniDizi[j] = yeniDizi[j + 1]; yeniDizi[j + 1] = tmp; } } } return yeniDizi; } int maxDegerIndex(int dizi[], int diziUzn) { int maxDeger, maxDegerIndex, i; maxDegerIndex = 0; maxDeger = 0; for (i = 0; i < diziUzn; i++) { if (dizi[i] > maxDeger) { maxDeger = dizi[i]; maxDegerIndex = i; } } return maxDegerIndex; } int enYakinDeger(float hedef, int *dizi, int diziUzn) { float fark = 100; int i, enYakin; for (i=0; i< diziUzn; i++) { if (fabsf(hedef - dizi[i]) < fark) { fark = fabsf(hedef - dizi[i]); enYakin = dizi[i]; } } return enYakin; } void main() { int c; int isRassal = 0; while (1) { printf("\nNot değerleri rassal üretilsin mi? (E/h): "); c = getchar(); //printf("\n%d\n", c); if ((c == 69) || (c == 101) || (c == 32) || (c == 10)) { isRassal = 1; break; } if ((c == 72) || (c == 104)) { isRassal = 0; break; } if (c == 27) { printf("\nProgram sonu"); return; } } int notlar[2][10]; //ders x ogrenci --> Ders Index 0: mat, 1: fiz int i; if (isRassal) { srand(time(NULL)); for (i = 0; i < 10; i++) { notlar[0][i] = rand() % 100; notlar[1][i] = rand() % 100; } } else { for (i = 0; i < 10; i++) { printf("\n%d. öğrencinin matematik notu: ", i + 1); scanf("%d", ¬lar[0][i]); printf("\n%d. öğrencinin fizik notu: ", i + 1); scanf("%d", ¬lar[1][i]); } } float ortMat, ortFiz; int topMat, topFiz; printf("\nGirilen Değerler: \n----------------------------------------------"); diziYaz(notlar[0], 10, "Mat"); diziYaz(notlar[1], 10, "Fiz"); printf("\n\nSonuçlar: \n----------------------------------------------"); // Fizik ve matematik dersi not ortalaması hesaplayınız. printf("\nMat ortalaması: %2.2f", ortalama(notlar[0], 10)); printf("\nFiz ortalaması: %2.2f", ortalama(notlar[1], 10)); // Fizik nptlarını azalan sıra ile yazınız diziYaz(siralaAzalan(notlar[1], 10), 10, "Fizik Notları Azalan"); // Fizik dersinden en yüksek not alan öğrencinin matematik dersi notunu yazınız. printf("\nFizikten en yüksek not alan öğrencinin Mat Notu : %d", notlar[0][maxDegerIndex(notlar[1], 10)]); // Matematik not ortalamasına en yakın notu olan öğrencinin Matematik notunu yazınız. printf("\nMatematik not ortalamasına en yakın notu olan öğrencinin Matematik notu : %d", enYakinDeger(ortalama(notlar[0], 10), notlar[0], 10)); }