| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 789 人关注过本帖
标题:信息的输入与输出
只看楼主 加入收藏
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
收藏
得分:0 
printf("请分别输入学号、姓名、性别:\n");
        scanf("%d %s %c",&student[i].num,&student[i].name,&student[i].sex);
       printf("ok\n");《《--------你运行时把printf("ok\n");这句话删掉,它只是拿来检查用的。
其实是因为你没有加上getchar()
因为scanf会接收你上一次输入时留在缓冲区的回车符。
你得用getchar()接收回车符。
2013-05-26 11:51
逆风而前
Rank: 7Rank: 7Rank: 7
来 自:福建
等 级:黑侠
威 望:7
帖 子:193
专家分:567
注 册:2013-2-14
收藏
得分:0 
#include<stdio.h>
struct
{
    int num;
    char name[10];
    char sex;
    union
    {
        char sight;
        float hw[2];
    }a;
}student[10];
void main()
{
    int i=0;
    printf("输入性别为m或w,输入视力为y或n\n");
    for(i=0;i<10;i++)
    {
        printf("请分别输入学号、姓名、性别:\n");
        scanf("%d %s %c",&student[i].num,&student[i].name,&student[i].sex);
        printf("ok\n");
        if(student[i].sex=='m')
        {
            getchar();
            printf("请输入视力:\n");
            scanf("%c",&student[i].a.sight);
        }
        else
        {
            getchar();
            printf("请输入体重:\n");
            scanf("%f %f",&student[i].a.hw[0],&student[i].a.hw[1]);
        }
        getchar();
    }
    printf("num        name          sex         sight/hw\n");
    for(i=0;i<10;i++)
    {
        if(student[i].sex=='m')
            printf("%d\t %s\t %c\t %c\n",student[i].num,student[i].name,student[i].sex,student[i].a.sight);
            else
            printf("%d\t %s\t %c\t %f\t %f\n",student[i].num,student[i].name,student[i].sex,student[i].a.hw[0],student[i].a.hw[1]);
    }
}
2013-05-26 11:51
流年226
Rank: 1
等 级:新手上路
帖 子:37
专家分:7
注 册:2013-4-27
收藏
得分:0 
嗯嗯,明白了,十分感谢
2013-05-26 14:17
快速回复:信息的输入与输出
数据加载中...
 
   



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

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