| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1062 人关注过本帖
标题:C语言有没有过关就看这道题
只看楼主 加入收藏
刘晓鹏
Rank: 2
等 级:论坛游民
帖 子:70
专家分:68
注 册:2010-1-4
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:10 
C语言有没有过关就看这道题
#include<stdio.h>
          struct student
          { char id[20];
            char name[10];
            float score;
          };
                                             

    int main()
{
   struct student stu[8];
   int i;  
   
     for(i=0;i<8;i++)               
{
   printf("please input No.%d is ID:  \t",i+1);
   gets(stu[i].id);
   
   printf("please input No.%d is name:\t",i+1);
   gets(stu[i].name);
   
   printf("please input No.%d is score:\t",i+1);
   scanf("%.2f",&stu[i].score);  /*为什么这条语句没用捏*/
}
printf("%s\n%s\n%.2f\n",stu[i].id,stu[i].name,stu[i].score);
}
用这种办法吧大家哄过来真是不好意思啊,这个问题我想了几遍了,还是没办法,这能靠大家了。
搜索更多相关主题的帖子: C语言 过关 
2010-02-24 11:37
刘晓鹏
Rank: 2
等 级:论坛游民
帖 子:70
专家分:68
注 册:2010-1-4
收藏
得分:0 
先坐个板凳观摩大家的想法
2010-02-24 11:38
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:5 
scanf没有%.3f的修饰符,只有%3f之类的,后者的意思是读取的字符个数,如用scanf("%3f",&a);读取123456会得到123.0
根据我的测试结果(DEVC++),一旦你在scanf的%后的整数后加小数点,如%.3f  %.f  %3.3f   %3.f都相当于%0f即一个字符也不读取
2010-02-24 12:08
刘晓鹏
Rank: 2
等 级:论坛游民
帖 子:70
专家分:68
注 册:2010-1-4
收藏
得分:0 
回复 3楼 heartnheart
scanf("%3f",&stu[i].score);
我TC下测试还是没用怎么回事呢
stu[i].score=100;的方式就可以
到底是什么原因?
2010-02-24 12:20
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:5 
呵呵这个问题我也遇到过··
程序代码:
printf("please input No.%d is ID:  \t",i+1);
   gets(stu[i].id);
   
   printf("please input No.%d is name:\t",i+1);
   gets(stu[i].name);
   
   printf("please input No.%d is score:\t",i+1);
   scanf("%.2f",&stu[i].score); 
输入时:
程序代码:
0102101┛(回车)
xiaowang┛
4540102102┛
xiaowu┛
465
结果是:
程序代码:
0102101→(赋给)id
xiaowang→name
454→score
┛→id
0102102→name
xiaowu→score





[ 本帖最后由 jiangwu10057 于 2010-2-24 13:02 编辑 ]
2010-02-24 12:30
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:0 
你printf的位置不对吧,应该在for里,在外面只会显示stu[8]的数据,但这是越界的
2010-02-24 13:45
mb0500230124
Rank: 2
等 级:论坛游民
帖 子:7
专家分:35
注 册:2009-9-29
收藏
得分:0 
是这样的
2010-02-24 15:17
幸运之星
Rank: 4
来 自:吉林
等 级:业余侠客
帖 子:275
专家分:239
注 册:2009-6-5
收藏
得分:0 
2010-02-24 20:04
刘晓鹏
Rank: 2
等 级:论坛游民
帖 子:70
专家分:68
注 册:2010-1-4
收藏
得分:0 
我知道是什么原因了。scanf("%f",&stu[i].score);  本来scanf()是可以输入float数据类型的,但是遇到struct结构体的成员时候就无效了。
2010-02-25 10:54
nbaqqqq
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
收藏
得分:0 
以下是引用heartnheart在2010-2-24 12:08:06的发言:

scanf没有%.3f的修饰符,只有%3f之类的,后者的意思是读取的字符个数,如用scanf("%3f",&a);读取123456会得到123.0
根据我的测试结果(DEVC++),一旦你在scanf的%后的整数后加小数点,如%.3f  %.f  %3.3f   %3.f都相 ...
图片附件: 游客没有浏览图片的权限,请 登录注册

懂了
2010-02-25 12:05
快速回复:C语言有没有过关就看这道题
数据加载中...
 
   



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

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