| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1158 人关注过本帖
标题:这个程序很简单,但是我不知道怎么解决这个问题!求大神指点!
只看楼主 加入收藏
落翼天玑乱
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2016-3-7
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
这个程序很简单,但是我不知道怎么解决这个问题!求大神指点!
#include <stdio.h>
    int main()
    {
        printf("                        性格测试(一)\n");
        printf("这个测试是菲尔博士在著名女黑人欧普拉的节目里做的,满准确的。答覆是依现在的您,不要依过去的您。这是一个目前很多大公司人事部门实际采用的测试。\n\n\n");
        int ch1,ch2;
        int mark=0;
        printf("1.你什么时感觉最好?\na)早晨  b)下午及傍晚  c)夜里\n请输入你的选择:");
        scanf("%c",&ch1);
        if(ch1=='a')
        {
            mark+=2;
        }else if(ch1=='b')
        {
            mark+=4;
        }else if(ch1=='c')
        {
            mark+=6;
        }else
        {
            printf("你的输入有误!视为不选!");
        }
        printf("\n");
        
        printf("2.你走路时是……\na)大步的快走  b)小步的快走\nc)不快,仰著头面对著世界  d)不快,低著头  e)很慢\n请输入你的选择:");
        scanf("%c",&ch2);
        if(ch2=='a')
        {
            mark+=6;
        }else if(ch2=='b')
        {
            mark+=4;
        }else if(ch2=='c')
        {
            mark+=7;
        }else if(ch2=='d')
        {
            mark+=2;
        }else if(ch2=='e')
        {
            mark+=1;
        }else
        {
            printf("你的输入有误!视为不选!\n");
        }
        printf("\n");
        
        
        printf("%d",mark);

        system ("pause");
        return 0;
     }

编译之后第一道题很正常,第二道题就不能读取答案了,也就是说后续的题也不能做了。求解怎么破!



[此贴子已经被作者于2016-3-12 22:12编辑过]

2016-03-12 22:10
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:2 
ch1,ch2定义为int但用字符方式读取是不正确的方式。
char ch1,ch2,ch;
......
scanf("%c",&ch1);
ch=getchar();
......
scanf("%c",&ch2);
ch=getchar();
......

   唯实惟新 至诚致志
2016-03-12 22:29
z13631440976
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
威 望:2
帖 子:40
专家分:118
注 册:2016-3-5
收藏
得分:2 
没有添加 stdlib.h
还有 你输入的时候要按回车键
程序将回车键作为你对第二题的输入
 printf("\n");
 在这个后面加入 getchar();
就可以了
        
2016-03-12 22:31
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:6 
很简单,少年你没有清空缓冲区啊
#include <stdio.h>
int main()
{
    printf("                        性格测试(一)\n");
    printf("这个测试是菲尔博士在著名女黑人欧普拉的节目里做的,满准确的。答覆是依现在的您,不要依过去的您。这是一个目前很多大公司人事部门实际采用的测试。\n\n\n");
    char ch1,ch2;
    int mark=0;
    printf("1.你什么时感觉最好?\na)早晨  b)下午及傍晚  c)夜里\n请输入你的选择:");
    scanf("%c",&ch1);
    fflush(stdin);
    if(ch1=='a')
    {
        mark+=2;
    }else if(ch1=='b')
    {
        mark+=4;
    }else if(ch1=='c')
    {
        mark+=6;
    }else
    {
        printf("你的输入有误!视为不选!");
    }
    printf("\n");
   
    printf("2.你走路时是……\na)大步的快走  b)小步的快走\nc)不快,仰著头面对著世界  d)不快,低著头  e)很慢\n请输入你的选择:");
    scanf("%c",&ch2);
    fflush(stdin);
    if(ch2=='a')
    {
        mark+=6;
    }else if(ch2=='b')
    {
        mark+=4;
    }else if(ch2=='c')
    {
        mark+=7;
    }else if(ch2=='d')
    {
        mark+=2;
    }else if(ch2=='e')
    {
        mark+=1;
    }else
    {
        printf("你的输入有误!视为不选!\n");
    }
    printf("\n");
   
   
    printf("%d分",mark);

    return 0;
 }
2016-03-12 22:32
落翼天玑乱
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2016-3-7
收藏
得分:0 
回复 4楼 hjx1120
虽然不知道什么是缓冲区(我是新手)。。。不过竟然真的可以。。真是太感谢了!!
2016-03-12 23:18
落翼天玑乱
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2016-3-7
收藏
得分:0 
回复 3楼 z13631440976
根据您的指导问题得到了完美的解决。O(∩_∩)O谢谢。
2016-03-12 23:24
落翼天玑乱
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2016-3-7
收藏
得分:0 
回复 2楼 qq1023569223
根据您的指导,问题得到了完美的解决。O(∩_∩)O谢谢
2016-03-12 23:24
快速回复:这个程序很简单,但是我不知道怎么解决这个问题!求大神指点!
数据加载中...
 
   



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

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