| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 594 人关注过本帖
标题:求助!谢谢大家!
只看楼主 加入收藏
木北北
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-11-24
收藏
 问题点数:0 回复次数:5 
求助!谢谢大家!
#include "stdio.h"
struct student
{
 int num;
 char name[8];
 int score[3];
 float avr;
}stu[3];
float pingjun(struct student stu[])   //求每个人的三课成绩的平均成绩
{
 int i,j,sum=0;
 float average=0;
 for(i=0;i<3;i++)
 {
  for(j=0;j<3;j++)
  {
   sum+=stu[i].score[j];
  }
  average=sum/3.0;
  return(average);
 }
}
input(struct student stu[])   //输入三个学生的学号,姓名,和三课成绩
{
 int i,j;
 for(i=0;i<3;i++)
 {
  printf("输入学生学号:\n");
  scanf("%d",&stu[i].num);
  printf("输入学生姓名:\n");
  scanf("%s",&stu[i].name);
  for(j=0;j<3;j++)
  {
   printf("输入三课成绩:\n");
   scanf("%d",&stu[i].score[j]);
  }
  
 }
 print(stu);
 
}
print(struct student stu[])  //输出三个学生学号,姓名,和三课成绩,还有平均成绩!
{
 int i,j;
 for(i=0;i<3;i++)
 {
  printf("%3d%5s",stu[i].num,stu[i].name);
  for(j=0;j<3;j++)
  {
   printf("%5d",stu[i].score[j]);
  }
  printf("%4.0f",stu[i].avr=pingjun(&stu[i]));
  printf("\n");
 }
    bijiao(stu);
 
}
bijiao(struct student stu[])  //输出最高分的那个学生的学号,姓名,和三课成绩,平均成绩
{
 struct student temp;
 int i,j;
 for(i=0;i<3;i++)
 {
  for(j=0;j<3-i;j++)
   if(stu[j].avr<stu[j+1].avr)
   {
    temp=stu[j+1];
    stu[j+1]=stu[j];
    stu[j]=temp;
   }
 }
 printf("总分最高的学生是:\n");
 printf("%3d%5s%5d%5d%5d%4.0f\n",stu[0].num,stu[0].name,stu[0].score[0],stu[0].score[1],stu[0].score[2],stu[0].avr);
 chazhao(stu);
}
chazhao(struct student stu[])    //输入学生姓名,输出该学生的学号,姓名,三课成绩,还有平均成绩
{
 int i;
 char name[10];
 printf("输入查找的姓名:\n");
 fflush(stdin);
 scanf("%s",name);
 fflush(stdin);
 for(i=0;i<3;i++)
 {
  if(name==stu[i].name)
  {
   printf("3d%5s%5d%5d%5d%4.0f\n",stu[i].num,stu[i].name,stu[i].score[i],stu[i].score[1],stu[i].score[2],stu[i].avr);
  }
 }

}
int main(void)
{
 input(stu);
 return(0);
}

问题出在查找那,我用红色标示出来了,我输入学生姓名,并不给我输出该学生的一切信息,高手帮我看看问题出在那?
谢谢!
搜索更多相关主题的帖子: stu int float average sum 
2007-11-29 10:34
Uc-Sun
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-11-28
收藏
得分:0 
if(name==stu[i].name)

字符串和字符串能这样比较吗?当然不行喽!

使用:
if(strcmp(name, stu[i].name) == 0)

COS-DOS
2007-11-29 11:03
木北北
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-11-24
收藏
得分:0 
先谢谢你!
行是行了,可我输出那有问题了.
chazhao(struct student stu[])    //输入学生姓名,输出该学生的学号,姓名,三课成绩,还有平均成绩
{
int i;
char name[10];
printf("输入查找的姓名:\n");
fflush(stdin);
scanf("%s",name);
fflush(stdin);
for(i=0;i<3;i++)
{
  if(strcmp(name, stu[i].name) == 0)
  {
   printf("3d%5s%5d%5d%5d%4.0f\n",stu[i].num,stu[i].name,stu[i].score[i],stu[i].score[1],stu[i].score[2],stu[i].avr);  //就这块!输出的并不是我要查找的那个学生的信息,这是为什么啊?
  }
}
}
2007-11-29 11:47
Uc-Sun
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-11-28
收藏
得分:0 
stu[i].num,
stu[i].name,
stu[i].score[0],    /* 你里是 i */
stu[i].score[1],
stu[i].score[2],
stu[i].avr);

COS-DOS
2007-11-29 11:52
木北北
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-11-24
收藏
得分:0 
是啊,我的意思是让那个name和stu[i].name比较,看那个姓名一样,然后就输出stu[i]的所有信息.这样不可以吗?
2007-11-29 11:54
木北北
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-11-24
收藏
得分:0 
好了  问题解决了
谢谢你
2007-11-29 12:11
快速回复:求助!谢谢大家!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020399 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved