首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个关于输入的有关问题

2012-02-10 
一个关于输入的问题#include stdio.h#defineN2structstudent{charnum[6]charname[8]floatscore[3]}st

一个关于输入的问题
#include <stdio.h>
#define   N   2
struct   student
{   char   num[6];
    char   name[8];
    float   score[3];
}stu[N];
void   main()
{   int   i,j;
    for(i=0;i <N;i++)
    {   printf( "input   scores   of   student   %d;\n ",i+1);
        printf( "No.: ");
        scanf( "%s ",stu[i].num);
        printf( "name: ");
        scanf( "%s ",stu[i].name);
        for(j=0;j <3;j++)
            {   printf( "score   %d: ",j+1);
                scanf( "%f ",&stu[i].score[j]);
            }
    }
    printf( "         No.         name         score1         score2         score3\n ");
    for(i=0;i <N;i++)
        {   printf( "%5d%10s ",stu[i].num,stu[i].name);
            for(j=0;j <3;j++)
            printf( "%9.2f ",stu[i].score[j]);
        }
}
这个程序怎么不能输入分数?输完name后回车程序就退出了


[解决办法]
scanf( "%f ",&stu[i].score[j]);
========================================
在TC下面scanf不支持输入float型数值...改成%d就可以了
[解决办法]
scanf( "%f ",&stu[i].score[j]);
问题好象在这里
&的优先级高,结合顺序从右到左
.的优先级底,结合顺序从左到右
结果就是(&stu[i]).score[j]);

如果写成 ",&(stu[i].score[j]); 应该就对了
[解决办法]
ms没有问题的...

难道是浮点数没连接上?
[解决办法]
我运行你的程序了,正常...输完名字可以输成绩,只不过printf( "%5d%10s ",stu[i].num,stu[i].name)这里的%5d被我改了%5s,不知道你那问题在哪,我是在VC++ 2005上运行的
[解决办法]
应该是编译器的问题...

比如不支持这么输入...
[解决办法]
请问你用的什么编译器?
是tc的话经常出现这样的问题
你可以查找这个上面的一个回帖,对这个问题有解释和解决的方法
在前面加个double x
告诉编译器要将float 连接上

热点排行