二维数组输入
2013-12-28
//vc6下编译,运行成功,并达到题目效果
//程序如下:
#include<stdio.h>
int main()
{
int i,j;//用于for循环
int num,searchn;//num输入的数字,searchn表示需要查找的学号
int student[8][7];//根据题目使用二维数组,共8名学生,7(表示的是1个学号+6个成绩)
//输入8个学生的成绩,输入时,成绩用空格隔开,输入好一个学生后按回车键换行输入下一个学生的成绩
//格式是:学号 成绩1 成绩2 成绩3 成绩4 成绩5 成绩6
printf("Input the 8 student's number and score:\n");
for(i=0;i<8;i++)
{
for(j=0;j<7;j++)
{
scanf("%d",&num);
student[i][j]=num;
}
}
//输入一个您要查找的学号
printf("Input a student's number to compute:");
scanf("%d",&searchn);
//通过for循环查找您想要查询的学号
for(i=0;i<8;i++)
{
for(j=0;j<7;j++)
{
if(student[i][j]==searchn)//如果输入的学号存在,求出该学生的平均分并输出
{
printf("The No.%d student's average is %.2f\n",student[i][0],(student[i][1]+student[i][2]+student[i][3]+student[i][4]+student[i][5]+student[i][6])/6.0);
//找到了想要的学号并计算好该生的平均分后,程序直接退出
return 0;
}
}
}
//输入的学号不存在,提示没有找到
printf("not find!\n");
return 0;
}
用这个函数float aver(int (*pStu)[7], int stuNo)(*pStu)[7],stuNo是学号怎么做??
//在以前的基础上,作了部分调整
#include<stdio.h>
float aver(int (*pStu)[7],int stuNo);
int main()
{
int i,j;//用于for循环
int num,searchn;//num输入的数字,searchn表示需要查找的学号
int student[8][7];//根据题目使用二维数组,共8名学生,7(表示的是1个学号+6个成绩)
//输入8个学生的成绩,输入时,成绩用空格隔开,输入好一个学生后按回车键换行输入下一个学生的成绩
//格式是:学号 成绩1 成绩2 成绩3 成绩4 成绩5 成绩6
printf("Input the 8 student's number and score:\n");
for(i=0;i<8;i++)
{
for(j=0;j<7;j++)
{
scanf("%d",&num);
student[i][j]=num;
}
}
//输入一个您要查找的学号
printf("Input a student's number to compute:");
scanf("%d",&searchn);
//调用aver函数,查找学号是否存在,若存在求出该生平均分
aver(student,searchn);
return 0;
}
float aver(int (*pStu)[7],int stuNo)
{
int i,j;
//通过for循环查找您想要查询的学号
for(i=0;i<8;i++)
{
if(*(pStu[i]+0)==stuNo)//如果输入的学号存在,求出该学生的平均分并输出
{
printf("The No.%d student's average is %.2f\n",*(pStu[i]+0),(*(pStu[i]+1)+*(pStu[i]+2)+*(pStu[i]+3)+*(pStu[i]+4)+*(pStu[i]+5)+*(pStu[i]+6))/6.0);
return 0.0;
}
}
//输入的学号不存在,提示没有找到
printf("not find!\n");
return 0.0;
}
struct stu{
long num;
float score[6];
};
void student(struct stu s[8])
{
long number;
float sum=0;
int i=0;
printf("请输入学号:");
scanf("%ld",&number);
while(i++!=8)
{
if(number==s[i].num)
{
for(int k=0;k<6;k++)
sum+=s[i].score[k];
printf("%ld号的平均成绩为:%f\n",number,sum/6);
}
}
if(i==8)
printf("not find\n");
}
int main(void)
{
struct stu stud[8];
int i,j;
printf("请输入学号和6门成绩\n");
for(i=0;i<8;i++)
{
scanf("%ld",&stud[i].num);
for(j=0;j<6;j++)
scanf("%f",&stud[i].score[j]);
}
student(stud);
return 0;
}
用这个函数float aver(int (*pStu)[7], int stuNo)
(*pStu)[7],stuNo是学号
怎么做??
您还是问另一位吧,我要复习离散数学,还有就是请下次提问说清楚,免得浪费大家时间!