YZM502 final soru-2
This commit is contained in:
136
YZM502/final-soru2.c
Normal file
136
YZM502/final-soru2.c
Normal file
@@ -0,0 +1,136 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
#include <math.h>
|
||||
|
||||
|
||||
|
||||
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));
|
||||
}
|
||||
Reference in New Issue
Block a user