| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 478 人关注过本帖
标题:帮忙看一下怎么错了,输入1之后总是提示“没有此学生”
只看楼主 加入收藏
wk960788568
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-6-29
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
帮忙看一下怎么错了,输入1之后总是提示“没有此学生”
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student
{
 char name[20];
 float score_math;
 float score_eng;
};
int chaxun(char a[10])
{
 int i;
 struct student st[5];
 FILE *fp;
 if((fp=fopen("stud.dat","wb"))==NULL)
 {
  printf("打开文件失败");
  exit(0);
 }
   
 for(i=0;i<5;i++)
  if(strcmp(st[i].name,a)==0)
  {
   fscanf(fp,"%d,%d",&st[i].score_math,&st[i].score_eng);
   printf("该学生成绩为%d,%d",st[i].score_math,st[i].score_eng);
   return 1;
  }
  printf("没有此学生");
  fclose(fp);
}
void main()
{
 struct student st[5];
 char xm[20];
 int i,n;
 FILE *fp;
 if((fp=fopen("stud.dat","wb"))==NULL)
 {
  printf("打开文件失败");
  exit(0);
 }
 for(i=0;i<5;i++)
 {
  printf("请输入第%d个姓名",i+1);
  fflush(stdin);
  gets(st[i].name);
  printf("请输入高数,英语成绩:\n");
  scanf("%d,%d",&st[i].score_math,&st[i].score_eng);
  fwrite(&st[i],sizeof(struct student),1,fp);
 }
 fclose(fp);
 if((fp=fopen("stud.dat","wb"))==NULL)
 {
  printf("打开文件失败\n");
  exit(0);
 }
 printf("0.结束  1.查询");
 printf("请输入选项");
 scanf("%d",&n);
 while(n!=0)
 {
  if((fp=fopen("stud.dat","wb"))==NULL)
  {
   printf("打开文件失败");
   exit(0);
  }
  printf("请输入要查寻的姓名");
  getchar();
  gets(xm);
  chaxun(xm);
  getchar();
  fclose(fp);
 }
}
搜索更多相关主题的帖子: include return 
2012-06-29 11:22
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
收藏
得分:0 
程序代码:
for(i=0;i<5;i++)
  if(strcmp(st[i].name,a)==0)
  {
   fscanf(fp,"%d,%d",&st[i].score_math,&st[i].score_eng);
   printf("该学生成绩为%d,%d",st[i].score_math,st[i].score_eng);
   return 1;
  }
  printf("没有此学生");
  fclose(fp);
}
发现问题了吗

喜欢睡觉 却经常熬夜
2012-06-29 13:12
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:4 
嘿嘿
我发现了。。
2012-06-29 14:38
一只小猪猪
Rank: 2
等 级:论坛游民
帖 子:5
专家分:13
注 册:2012-4-24
收藏
得分:4 
以下是引用阿鞠尼在2012-6-29 13:12:38的发言:

for(i=0;i<5;i++)
  if(strcmp(st.name,a)==0)
  {
   fscanf(fp,"%d,%d",&st.score_math,&st.score_eng);
   printf("该学生成绩为%d,%d",st.score_math,st.score_eng);
   return 1;
  }
  printf("没有此学生");
  fclose(fp);
}发现问题了吗




顺序执行下去,木有判断好~
2012-06-29 16:04
maple祺
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2012-6-29
收藏
得分:4 
回复 3楼 Alar30
没看懂啊    求解释求改错
2012-06-29 18:35
maple祺
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2012-6-29
收藏
得分:0 
以下是引用阿鞠尼在2012-6-29 13:12:38的发言:

for(i=0;i<5;i++)
  if(strcmp(st.name,a)==0)
  {
   fscanf(fp,"%d,%d",&st.score_math,&st.score_eng);
   printf("该学生成绩为%d,%d",st.score_math,st.score_eng);
   return 1;
  }
  printf("没有此学生");
  fclose(fp);
}发现问题了吗
木有看懂啊   求解释   谢谢啦     我做的通讯录也有这个问题额
2012-06-29 18:37
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
收藏
得分:4 
回复 6楼 maple祺
你想想我一个大大的菜鸟 只会在论坛骗分的菜鸟 怎么能会改你这么复杂的代码呢?
不过你里面还有几处错误应该改一改:注意数据的输入输出类型

喜欢睡觉 却经常熬夜
2012-06-30 00:52
netlin
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:24
帖 子:544
专家分:4308
注 册:2012-4-9
收藏
得分:4 
程序代码:
for(i=0;i<5;i++)
  if(strcmp(st[i].name,a)==0)
  {
   fscanf(fp,"%d,%d",&st[i].score_math,&st[i].score_eng);
   printf("该学生成绩为%d,%d",st[i].score_math,st[i].score_eng);
   return 1;
  }
  printf("没有此学生");
  fclose(fp);
我来说一说:
程序中第二行: if(strcmp(st[i].name,a)==0)中的st[i].name在此之前并没有赋值,当然就查不到了。

做自己喜欢的事!
2012-07-01 09:38
快速回复:帮忙看一下怎么错了,输入1之后总是提示“没有此学生”
数据加载中...
 
   



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

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