二维数组输入

题目:程序的功能是:先从键盘读入的8个学生的6门课成绩存放在二维数组student中(每一行存储一个学生的数据,第0列为学号,第1~6列依次为6门课的成绩),再从键盘读入... 题目:程序的功能是:先从键盘读入的8个学生的6门课成绩存放在二维数组student中(每一行存储一个学生的数据,第0列为学号,第1~6列依次为6门课的成绩),再从键盘读入一个学号,在student查找该学生是否存在,若存在,则输出其平均成绩,若不存在,则显示“not Find!”。  程序的运行效果应类似地如图1所示,图1中的:20011 100 80 90 78 85 9220012 90 83 88 76 80 9320015 85 50 73 75 83 9020013 89 80 78 83 75 5220021 60 82 85 98 75 7620031 70 70 63 68 93 6620035 78 60 72 82 88 5720026 92 85 99 95 65 81  和20035是从键盘输入的内容。 展开
 我来答
匿名用户
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;
}
Alan_Turing__
2013-12-28 · TA获得超过1201个赞
知道小有建树答主
回答量:369
采纳率:0%
帮助的人:416万
展开全部
#include<stdio.h>
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是学号
怎么做??
追答
您还是问另一位吧,我要复习离散数学,还有就是请下次提问说清楚,免得浪费大家时间!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式