-
Notifications
You must be signed in to change notification settings - Fork 0
/
paten_yarismasi.c
72 lines (59 loc) · 2.02 KB
/
paten_yarismasi.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdio.h>
#include <stdlib.h>
/*
Bir buz pateni karşılaşmasında bir yarışmacının performansı 6.00 üzerinden puanlanarak 10 hakem tarafından
değerlendirilmektedir. Yarışmacının performans puanı ise hakemlerin vermiş olduğu en düşük ve en yüksek puan atılıp,
geri kalan puanların aritmetik ortalaması alınarak bulunmaktadır. Yazacağınız programda yarışmacının
adı,soyadı,performans puanını hesaplayıp ekranda görüntüleyiniz. Performans hesaplamasını tek parametreli
bir fonksiyonda yapınız. Bu fonksiyon yarışmacıya ait yapıyı(structı) parametre olarak almalı ve performans
puanını hesaplayarak geri döndürmelidir.
*/
typedef struct yarismaci{
char ad[30];
char soyad[30];
float puan[10];
}YARISMACI;
float puan_hesapla(YARISMACI y);
int main(){
YARISMACI y;
int i;
float perf_puani;
printf("-----PATEN YARISMASI-----\n\n");
printf("Yarismacinin ismini giriniz: ");
scanf("%s",&y.ad);
printf("Yarismacinin soyadini giriniz: ");
scanf("%s",&y.soyad);
printf("\nHakem puanlarini giriniz(6.00 uzerinden): \n");
for(i=0;i<10;i++){
printf("%d.hakemin puanini giriniz: ",i+1);
scanf("%f",&y.puan[i]);
}
perf_puani = puan_hesapla(y);
printf("\nYarismacinin performans puani: %.3f",perf_puani);
return 0;
}
float puan_hesapla(YARISMACI y){
int i=0,c=0,k=0;
float max,min,answer=0;
max = y.puan[i];
min = y.puan[i];
for(i=1;i<10;i++){
if(y.puan[i] > max)
max = y.puan[i];
if(y.puan[i] < min)
min = y.puan[i];
}
for(i=0;i<10;i++){
if(y.puan[i]==max && c==1)
answer = answer + y.puan[i];
if(y.puan[i]==min && k==1)
answer = answer + y.puan[i];
if(y.puan[i]==max && c==0)
c++;
if(y.puan[i]==min && k==0)
k++;
if(y.puan[i]!=max && y.puan[i]!=min)
answer = answer + y.puan[i];
}
return (answer/8);
}