这是作者去年8月写的一段代码
#include <stdio.h>
#include <stdLib.h>
#include <memory.h>
struct grade
{
scores[6][50];
};
// 获得一维数组的平均值
float getaver(int* st)
{
int count = 0;
int total = 0;
while(0!=*st)
{
++count;
total += *st;
++st;
}
if(0 == count)
return 0.0f;
return (float)total/count;
}
// 通过数组的平均值大小进行比较
int cmp(const void* a, const void* b)
{
// 获得两个数组的平均值
float avera = getaver((int*)a);
float averb = getaver((int*)b);
// 返回比较结果
return avera – averb;
}
int main()
{
// 定义保存批量数据的二维数组,
// 并用memset()函数完成数组的初始化
const int classnum = 3;
const int stnum = 100;
int scores[classnum][stnum];
memset(scores,0,classnum*stnum*sizeof(int));
// 利用for语句完成数据的输入
for(int i = 0; i < classnum;++i)
{
printf("please input the scores of class %d:n",i+1);
for(int j = 0; j < stnum; ++j)
{
// 将输入的数据保存到scores[i][j]
scanf("%d",&scores[i][j]);
// 判断刚刚输入的数据是否为0,
// 如果为0,则利用break结束本层循环
if(0 == scores[i][j])
break;
}
}
puts("sort");
qsort(scores,
classnum,
stnum*sizeof(int),
cmp);
puts("end");
for(int i = 0; i < classnum;++i)
{
printf("average score is %.2f :n",
getaver(scores[i]));
for(int j = 0; j < stnum; ++j)
{
if(0 == scores[i][j])
break;
printf("%4d",scores[i][j]);
}
printf("n");
}
return 0;
}
大家从中不难看出作者真实的C语言“使用”能力