学生党求帮忙看一下问题出在哪

蝴蝶将死 发布于 2014/03/15 09:06
阅读 82
收藏 0

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define N 3  //学生数量
#define M 3  //课程数量
struct studentinfo
{
 int num;//学号
 char name[20];//姓名
 int score[3];//成绩
 float average;//平均成绩
}stu[N];
void input();  //输入
void query();  //查询
void count();  //计算
void error();  //显示错误
void main()
{
  int a;
   printf("\t1.输入学生信息:\n");
   printf("\t2.查询学生信息:\n");
   printf("\t3.统计学生信息:\n");
   printf("\t请输入数字选择:\n");
   scanf("%d",&a);
   switch(a)
   {
   case 1:input();break;//输入
   case 2:query();break;//查询
   case 3:count();break;//计算
   default:error();break;//错误
   }

}
/*--------------------输入模块------------------------*/
void input()
{
  int i,j;
  printf("成绩录入:");
  for(i=0;i<N;i++)
  {
   printf("请输入第%d学生学号:\n",i+1);
   scanf("%d",&stu[i].num);
   printf("请输入学生姓名:\n");
   scanf("%s",&stu[i].name);

   for(j=0;j<M;j++)
   {
    printf("请输入第%d门课程成绩:\n",j+1);
 scanf("%d",&stu[i].score);
   }
  }
  printf("输入完毕,任意键返回!");
  getch();
  system("cls");

  main();
}
/*----------------------查询模块-------------------------------*/
void query()
{
 int m;
  printf("请输入要查询的学生学号:");
  scanf("%d",&m);
  printf("学号是%d的学生姓名是%s",m,stu[m].name);

}
/*----------------------计算平均分数-------------------------------*/

void count()
{}
/*----------------------显示错误-------------------------------*/

void error()
{}

 

我写到这里就出问题了 为什么不能查询到姓名呢 总是无法显示出姓名

加载中
0
mingshun
mingshun

scanf("%s",&stu[i].name);多了个“&”号。

scanf("%d",&stu[i].score);应该是scanf("%d",&stu[i].score[j]);


mingshun
mingshun
回复 @蝴蝶将死 : 获取stu[i].name就代表了字符串的指针。你的程序逻辑不对,stu[].num才是学号,显示某学号的学生信息却用stu[m],应该是遍历stu数组来判断stu[].num是否是你输入的学号来找学生信息。
蝴蝶将死
蝴蝶将死
谢谢。可是这是为什么呢 我按照您的改了还是不行。
返回顶部
顶部