| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 747 人关注过本帖
标题:这个结构体输入哪错了?
只看楼主 加入收藏
human84
Rank: 3Rank: 3
来 自:哈尔滨 / 重庆
等 级:论坛游侠
帖 子:154
专家分:141
注 册:2009-11-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
这个结构体输入哪错了?
如果把c,s,y定义成整型,下面改成%d就可以得到正确结果,定义成浮点型,下面%f,就不对...为什么啊?谢谢~~
struct cj
{
    char name[20];
    char number[15];
        float c;
        float s;
        float y;
}num[5];
main()
{
    int i;
    for(i=0;i<5;i++)
    {
        printf("num:%d\n",i+1);
    printf("name:\n");
    scanf("%s",num[i].name);
    printf("number:\n");
    scanf("%s",num[i].number);
    printf("c:\n");
    scanf("%f",&num[i].c);
    printf("s:\n");
    scanf("%f",&num[i].s);
    printf("y:\n");
    scanf("%f",&num[i].y);
    }

}
搜索更多相关主题的帖子: 结构体 输入 
2010-01-05 00:31
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:10 
可用中间变量代替来解决,如:
   int temp;
  printf("name:\n");
    scanf("%s",num[i].name);
    printf("number:\n");
    scanf("%s",num[i].number);
    printf("c:\n");
    scanf("%f",&temp);num[i].c=temp;
    printf("s:\n");
    scanf("%f",&temp);num[i].s=temp;
    printf("y:\n");
    scanf("%f",&temp);num[i].y=temp;
至于为什么,我可以说是一个小小的bug。说起来会比较多。。。很想知道可回贴。。。只想知道怎么解决就算了···
2010-01-05 01:12
liangwenbc
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
帖 子:168
专家分:174
注 册:2008-6-11
收藏
得分:0 
楼上解释一下,有同样的疑问

qq7434391
2010-01-05 01:19
C78486080
Rank: 2
等 级:论坛游民
帖 子:18
专家分:18
注 册:2009-12-21
收藏
得分:3 
#include <stdio.h>
struct cj
{
    char name[20];
    char number[15];
        float c;
        float s;
        float y;
}num[5];
main()
{
    int i;
    for(i=0;i<5;i++)
    {
        printf("num:%d\n",i+1);
    printf("name:\n");
    scanf("%s",num[i].name);
    printf("number:\n");
    scanf("%s",num[i].number);
    printf("c:\n");
    scanf("%f",&num[i].c);
    printf("s:\n");
    scanf("%f",&num[i].s);
    printf("y:\n");
    scanf("%f",&num[i].y);
    }

}
我运行出来有正确结果,没错
2010-01-05 09:33
zhang222
Rank: 1
等 级:新手上路
帖 子:6
专家分:8
注 册:2010-1-5
收藏
得分:1 
编译器的问题吧
2010-01-05 09:36
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:5 
俄··其实这个问题也不用搞那么清楚,跟LS说的差不多,编译器的问题,换个高版本的就行了,像4s运行了就没问题,这是个不算bug的bug,建议换个新点的编译器,不然用个中间变量也不麻烦,而且用中间变量会显得”规范“点。
2010-01-05 20:09
一笔居士
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2010-1-5
收藏
得分:1 
我试了,3楼说的也不行。就是编译器的问题
2010-01-05 20:44
human84
Rank: 3Rank: 3
来 自:哈尔滨 / 重庆
等 级:论坛游侠
帖 子:154
专家分:141
注 册:2009-11-1
收藏
得分:0 
谢谢lijm1989,用中间变量解决了,我用的Microsoft Visual C++ 6.0和win-tc都有这个问题....我就发现C语言编译器浮点型总有bug....
2010-01-05 22:11
快速回复:这个结构体输入哪错了?
数据加载中...
 
   



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

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