[plain]
/* 程序頭部注釋開始(為避免提交博文中遇到的問題,將用於表明注釋的斜槓刪除了)
* 程序的版權和版本聲明部分
* All rights reserved.
* 文件名稱: txt.c
* 作 者: liuyongshui
* 問 題: 在數組score中將要存儲某小組C++程序設計的成績.
* 問題來源:
* 完成日期: 2013 年4 月18日
* 版 本 號: V1.0
*/
#include <stdio.h>
#include <math.h>
float total(float grade[], int num);
float average(float sum, int num);
float deviation(float grade[], float ave, int num); //求偏差
void max_min(float grade[], int num);
int main()
{
int i;
int num;
float sum;
float ave;
float dev; //偏差
float grade[100];
printf("您班上有人?嘻嘻嘻共有:");
scanf("%d", &num);
printf("\n");
for(i=0; i<num; i++)
{
printf("輸入第%2d位同學的成績(按EENTER進入):", i);
scanf("%f", &grade[i]);
}
sum= total(grade, num);
printf("\n總成績為:%0.2f\n", sum);
ave= average(sum, num);
printf("\n平均分為:%0.2f\n", ave);
dev= deviation(grade, ave, num);
printf("\n偏差為:%0.2f\n\n", dev);
max_min(grade, num);
return 0;
}
//sum()函數聲明
float total(float grade[], int num) //求總分
{
int i;
float sum=0.0;
for(i=0; i<num; i++)
{
sum+=grade[i];
}
return sum;
}
//average()函數聲明
float average(float sum, int num) //求平均分
{
float ave;
ave=sum/num;
return ave;
}
//deviation()函數聲明
float deviation(float grade[], float ave, int num) //求偏差
{
int i;
float s=0.0;
float dev;
for(i=0; i<num; i++)
{
s=s+(grade[i]-ave)*(grade[i]-ave);
}
dev=sqrt(s/(num-1));
return dev;
}
//max_min()函數聲明
void max_min(float grade[], int num)
{
int i;
int j=0;
int l=0;
int max_num[100];
int min_num[100];
float max;
float min;
max=min=grade[0];
for(i=0; i<num; i++)
{
if(max< grade[i])
{
max= grade[i]; //求最大值
}
if(min> grade[i])
{
min= grade[i]; //求最小值
}
}
for(i=0; i<num; i++)
{
if(max== grade[i])
{
max_num[j++]=i; //記錄最最大值的學號
}
if(min== grade[i])
{
min_num[l++]=i; //記錄最最小值的學號
}
}
printf("最高分為:%0.2f\n", max);
printf("最高分的學號有:");
for(i=0; i<j; i++)
{
printf("%d", max_num[i]);
if(i<j-1) //i<j-1是打印逗號,反之不打印
{
printf(",");
}
}
printf("\n\n");
printf("最低分為:%0.2f\n", min);
printf("最低分的學號有:");
for(i=0; i<l; i++)
{
printf("%d", min_num[i]);
if(i<l-1) //i<l-1是打印逗號,反之不打印
{
printf(",");
}
}
printf("\n");
}
/* 程序頭部注釋開始(為避免提交博文中遇到的問題,將用於表明注釋的斜槓刪除了)
* 程序的版權和版本聲明部分
* All rights reserved.
* 文件名稱: txt.c
* 作 者: liuyongshui
* 問 題: 在數組score中將要存儲某小組C++程序設計的成績.
* 問題來源:
* 完成日期: 2013 年4 月18日
* 版 本 號: V1.0
*/
#include <stdio.h>
#include <math.h>
float total(float grade[], int num);
float average(float sum, int num);
float deviation(float grade[], float ave, int num); //求偏差
void max_min(float grade[], int num);
int main()
{
int i;
int num;
float sum;
float ave;
float dev; //偏差
float grade[100];
printf("您班上有人?嘻嘻嘻共有:");
scanf("%d", &num);
printf("\n");
for(i=0; i<num; i++)
{
printf("輸入第%2d位同學的成績(按EENTER進入):", i);
scanf("%f", &grade[i]);
}
sum= total(grade, num);
printf("\n總成績為:%0.2f\n", sum);
ave= average(sum, num);
printf("\n平均分為:%0.2f\n", ave);
dev= deviation(grade, ave, num);
printf("\n偏差為:%0.2f\n\n", dev);
max_min(grade, num);
return 0;
}
//sum()函數聲明
float total(float grade[], int num) //求總分
{
int i;
float sum=0.0;
for(i=0; i<num; i++)
{
sum+=grade[i];
}
return sum;
}
//average()函數聲明
float average(float sum, int num) //求平均分
{
float ave;
ave=sum/num;
return ave;
}
//deviation()函數聲明
float deviation(float grade[], float ave, int num) //求偏差
{
int i;
float s=0.0;
float dev;
for(i=0; i<num; i++)
{
s=s+(grade[i]-ave)*(grade[i]-ave);
}
dev=sqrt(s/(num-1));
return dev;
}
//max_min()函數聲明
void max_min(float grade[], int num)
{
int i;
int j=0;
int l=0;
int max_num[100];
int min_num[100];
float max;
float min;
max=min=grade[0];
for(i=0; i<num; i++)
{
if(max< grade[i])
{
max= grade[i]; //求最大值
}
if(min> grade[i])
{
min= grade[i]; //求最小值
}
}
for(i=0; i<num; i++)
{
if(max== grade[i])
{
max_num[j++]=i; //記錄最最大值的學號
}
if(min== grade[i])
{
min_num[l++]=i; //記錄最最小值的學號
}
}
printf("最高分為:%0.2f\n", max);
printf("最高分的學號有:");
for(i=0; i<j; i++)
{
printf("%d", max_num[i]);
if(i<j-1) //i<j-1是打印逗號,反之不打印
{
printf(",");
}
}
printf("\n\n");
printf("最低分為:%0.2f\n", min);
printf("最低分的學號有:");
for(i=0; i<l; i++)
{
printf("%d", min_num[i]);
if(i<l-1) //i<l-1是打印逗號,反之不打印
{
printf(",");
}
}
printf("\n");
}