| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 666 人关注过本帖
标题:请问我错在哪了!
只看楼主 加入收藏
billtob
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-11-17
收藏
 问题点数:0 回复次数:7 
请问我错在哪了!
#include <stdio.h>
#define N 5
struct student
{
    int num;
    char name[15];
    float C_score;
    float java_score;
};
void main()
{
    struct student stu[N];
    int i;
    for(i=0;i<N;++i)
    {
        printf("\nyt请输入第%d个学员的信息:\n\t",i+1);
        printf("学号:");
        scanf("%d",&stu[i].num);
        printf("姓名:");
        fflush(stdin);
        gets(stu[i].name);
        printf("C课程成绩:");
        scanf("%5.2f",&stu[i].C_score);
        printf("java课程成绩:");
        scanf("%5.2f",&stu[i].java_score);
    }
}
学号只能输入一次~!下面就不能输了!java的成绩可以显示,就是不能输入!请帮我改改哦呀!谢谢呀!
搜索更多相关主题的帖子: include 课程 信息 姓名 
2007-12-11 10:38
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
回复这道题,我以作完,
你把你的系统调试,调试再说吧。
2007-12-11 11:13
billtob
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-11-17
收藏
得分:0 
就没错误吗!
2007-12-11 11:20
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
你的编程环境可能有问题
题的错误是有.
2007-12-11 12:03
billtob
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-11-17
收藏
得分:0 
我用的是visual C++6.0应该改哪!@
2007-12-11 12:45
布拉莫斯
Rank: 1
来 自:中国太平洋舰队
等 级:新手上路
帖 子:169
专家分:0
注 册:2007-3-31
收藏
得分:0 
我怀疑问题出在,fflush(stdin); 这个强制刷新缓冲区的函数上,所以在每个输入的地方多加了这样的一个fflush(stdin); 问题好像就解决了。
修改后的代码如下,其中的原理我也弄不懂,等待高手吧!

#include <stdio.h>
#define N 5
struct student
{
    int num;
    char name[15];
    float C_score;
    float java_score;
};
void main()
{
    struct student stu[N];
    int i;
    for(i=0;i<N;++i)
    {
        printf("\nyt请输入第%d个学员的信息:\n\t",i+1);
        printf("学号:");
        fflush(stdin);   /* ADD  ONE HERE */
        scanf("%d",&stu[i].num);
        printf("姓名:");
       fflush(stdin);
        gets(stu[i].name);
        printf("C课程成绩:");
        scanf("%5.2f",&stu[i].C_score);
        fflush(stdin);         /* ADD ONE HERE */
        printf("java课程成绩:");
        scanf("%5.2f",&stu[i].java_score);
    }
}

以上代码在VC++ 6.0上编译运行通过。。

真理往往掌握在少数人手中,可现实却是少数服从多数!
2007-12-11 13:21
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
for(i=0;i<N;++i)
    {
        printf("\nyt请输入第%d个学员的信息:\n\t",i+1);
        printf("学号:");
        scanf("%d",&stu[i].num);
        while(getchar() != '\n')           /* 清空行输入 */
            continue;
        printf("姓名:");
        fflush(stdin);
        gets(stu[i].name);
        while(getchar() != '\n')           /* 清空行输入 */
            continue;
        printf("C课程成绩:");
        scanf("%5.2f",&stu[i].C_score);
        while(getchar() != '\n')           /* 清空行输入 */
            continue;
        printf("java课程成绩:");
        scanf("%5.2f",&stu[i].java_score);
    }

    /* 因为输入一个数字后需要按回车,输入字符串的地方读取了这个回车 */

—>〉Sun〈<—
2007-12-11 13:39
billtob
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-11-17
收藏
得分:0 
可以啦!谢谢啦!~
2007-12-11 13:41
快速回复:请问我错在哪了!
数据加载中...
 
   



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

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