C喜歡簡潔的東西,呵呵

先留下個印記,不知道爲什麼,看自己以後學的更多了之後可以知道不。

目的是實現一個裁判系統,去掉最高最低分,最後得到平均分。

#include<stdio.h>
float max(float s[]);
float min(float s[]);
void main(){
float k=0,s[10],m,l,aver,sum,temp;
int n;
printf("PLEASE INPUT THE SCORE OF TEN JUDGEMENTS:/n ");
for(n=0;n<=9;n++){
scanf("%f",&temp);
if(temp>=10&&temp<=100)
s[n]=temp;
else n=n-1;
}
for(n=0;n<=10;n++)
k+=s[n];
m=max(s);
l=min(s);
aver=(k-l-m)/8;
printf("THE TOTAL IS %f/nTHE MAX IS %f/nTHE MIN IS %f/nTHE AVERAGE IS %f/n",k,m,l,aver);
getch();
}
float max(float s[])
{
float i;
int k;
i=s[0];
for(k=1;k<=9;k++){
if(i<=s[k])
i=s[k];
}
return i;
}

float min(float s[])
{
float i;
int l;
i=s[0];
for(l=1;l<=9;l++){
if(i>=s[l])
i=s[l];
}
return i;
}

改後的東西。

 

改之前出錯的東西:

#include<stdio.h>
float max(float s[]);
float min(float s[]);
void main(){
float k=0,s[10],m,l,aver,sum,temp;
int n;
printf("PLEASE INPUT THE SCORE OF TEN JUDGEMENTS:/n ");
for(n=0;n<=9;n++){
scanf("%f",&temp);
if(temp>=10&&temp<=100)
s[n]=temp;
else n=n-1;
}
for(n=0;n<=10;n++)
k+=s[n];
m=max(s);
l=min(s);
aver=(k-l-m)/8;
printf("THE TOTAL IS %f/nTHE MAX IS %f/nTHE MIN IS %f/nTHE AVERAGE IS %f/n",k,m,l,aver);
getch();
}
float max(float s[])
{
float i,j;
int k;
i=s[0];
for(k=1;k<=9;k++){
if(i<=s[k])
j=s[k];

i=j;/*就多了此處,邏輯上來說跟i=s[k]沒區別啊*/

}
return i;
}

float min(float s[])
{
float i,j;
int l;
i=s[0];
for(l=1;l<=9;l++){
if(i>=s[l])
j=s[l];

i=j;/*就多了此處,也沒什麼區別啊,但是這個程序在調的時候,老是出現 floating point error:domain,上面改正過的就沒有,哎,不知道爲什麼,看來c真的喜歡簡潔的東西,呵呵,開個玩笑自嘲下吧*/

}
return i;
}

難道TC不喜歡廢話麼?疑問中~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章