| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1815 人关注过本帖
标题:if的多重选择switch
只看楼主 加入收藏
学学霸
Rank: 2
等 级:论坛游民
帖 子:41
专家分:24
注 册:2015-5-16
结帖率:50%
收藏
 问题点数:0 回复次数:6 
if的多重选择switch
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(void)
{

    int fen;/*分数*/
    char ch;
    printf("一个心理测试\n");
    printf("第一题,你更喜欢吃那种水果?\n a草莓\n b苹果\n c西瓜\n d菠萝\n e橘子\n");
    fen=0;
    scanf("%c",&ch);
    if ((ch=getchar())!='#'&&islower(ch))
    {
        switch(ch)
        {
             case 'a':
             fen=fen+2;
             break;
            
             case 'b':
             fen=fen+3;
             break;
            
             case 'c':
             fen=fen+5;
             break;
            
             case 'd':
             fen=fen+10;
             break;
            
             case'e':
             fen=fen+15;
             break;
            
             default:
            printf("没有这个选项");
        }
    }
    else
    {
        printf("请输入正确的小写字母");
    }     
   
     printf("第二题,你平时休闲经常去的地方?\n a郊外\n b电影院\n c公园\n d商场\n e酒吧\n f练歌房\n");
    scanf("%c",&ch);
    if ((ch=getchar())!='#'&&islower(ch))
    {
        switch(ch)
        {
             case 'a':
             fen=fen+2;
             break;
            
             case 'b':
             fen=fen+3;
             break;
            
             case 'c':
             fen=fen+5;
             break;
            
             case 'd':
             fen=fen+10;
             break;
            
             case'e':
             fen=fen+15;
             break;
            
             default:
            printf("没有这个选项");
        }
    }
    else
    {
        printf("请输入正确的小写字母\n");
    }     
   
        printf("你的得分为%d\n",fen);
        if(fen<=39)
    printf("你是个散漫,爱玩,富于幻想。聪明机灵,待人热情,爱交朋友,但对朋友没有严格的选择标准。事业心较差\n,更善于享受生活,意志力和耐心都较差,我行我素\n。有较好的异性缘,但对爱情不够坚持认真,容易妥协。没有财产观念。\n");
        
 
        system("pause");
        return 0;
}


为什么fen的值一直为0,
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 心理测试 include 苹果 水果 
2015-05-31 11:19
学学霸
Rank: 2
等 级:论坛游民
帖 子:41
专家分:24
注 册:2015-5-16
收藏
得分:0 
求大神指导
2015-05-31 11:19
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(void)
{

    int fen;/*分数*/
    char ch;
    printf("一个心理测试\n");
    printf("第一题,你更喜欢吃那种水果?\n a草莓\n b苹果\n c西瓜\n d菠萝\n e橘子\n");
    fen=0;
    scanf("%c",&ch);
    if ((ch=getchar())!='#'&&islower(ch))
    {
        printf("test1");
        switch(ch)
        {
             case 'a':
             fen=fen+2;
             break;
            
             case 'b':
             fen=fen+3;
             break;
            
             case 'c':
             fen=fen+5;
             break;
            
             case 'd':
             fen=fen+10;
             break;
            
             case'e':
             fen=fen+15;
             break;
            
             default:
            printf("没有这个选项");
        }
    }
    else
    {
        printf("请输入正确的小写字母");
    }     
   
     printf("第二题,你平时休闲经常去的地方?\n a郊外\n b电影院\n c公园\n d商场\n e酒吧\n f练歌房\n");
    scanf("%c",&ch);
    if ((ch=getchar())!='#'&&islower(ch))
    {
        printf("test2");
        switch(ch)
        {
             case 'a':
             fen=fen+2;
             break;
            
             case 'b':
             fen=fen+3;
             break;
            
             case 'c':
             fen=fen+5;
             break;
            
             case 'd':
             fen=fen+10;
             break;
            
             case'e':
             fen=fen+15;
             break;
            
             default:
            printf("没有这个选项");
        }
    }
    else
    {
        printf("请输入正确的小写字母\n");
    }     
   
        printf("你的得分为%d\n",fen);
        if(fen<=39)
    printf("你是个散漫,爱玩,富于幻想。聪明机灵,待人热情,爱交朋友,但对朋友没有严格的选择标准。事业心较差\n,更善于享受生活,意志力和耐心都较差,我行我素\n。有较好的异性缘,但对爱情不够坚持认真,容易妥协。没有财产观念。\n");
        

        system("pause");
        return 0;
}
通过加入以上两条测试语句,证明你的两个if语句并没有执行,所以fen=0是很正常的
问题回答完毕

剑栈风樯各苦辛,别时冰雪到时春
2015-05-31 11:28
学学霸
Rank: 2
等 级:论坛游民
帖 子:41
专家分:24
注 册:2015-5-16
收藏
得分:0 
那要怎么改才可以使if执行
2015-05-31 11:55
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(void)
{

    int fen;/*分数*/
    char ch;
    printf("一个心理测试\n");
    printf("第一题,你更喜欢吃那种水果?\n a草莓\n b苹果\n c西瓜\n d菠萝\n e橘子\n");
    fen=0;
    scanf("%c",&ch);
    if ((getchar())!='#'&&islower(ch))
      if(islower(ch)){
        switch(ch)
        {
             case 'a':
             fen=fen+2;
             break;
            
             case 'b':
             fen=fen+3;
             break;
            
             case 'c':
             fen=fen+5;
             break;
            
             case 'd':
             fen=fen+10;
             break;
            
             case'e':
             fen=fen+15;
             break;
            
             default:
            printf("没有这个选项");
        }
     }
    else
        printf("请输入正确的小写字母");
            
     printf("第二题,你平时休闲经常去的地方?\n a郊外\n b电影院\n c公园\n d商场\n e酒吧\n f练歌房\n");  
      scanf("%c",&ch);
      if ((getchar())!='#'&&islower(ch))
      if(islower(ch)){
        switch(ch)
        {
             case 'a':
             fen=fen+2;
             break;
            
             case 'b':
             fen=fen+3;
             break;
            
             case 'c':
             fen=fen+5;
             break;
            
             case 'd':
             fen=fen+10;
             break;
            
             case'e':
             fen=fen+15;
             break;
            
             default:
            printf("没有这个选项");
        }
      }
    else
        printf("请输入正确的小写字母\n");
   
        printf("你的得分为%d\n",fen);
        if(fen<=39)
        printf("你是个散漫,爱玩,富于幻想。聪明机灵,待人热情,爱交朋友,但对朋友没有严格的选择标准。事业心较差\n");
        printf(",更善于享受生活,意志力和耐心都较差,我行我素\n。有较好的异性缘,但对爱情不够坚持认真,容易妥协。没有财产观念。\n");
        

        system("pause");
        return 0;
}

剑栈风樯各苦辛,别时冰雪到时春
2015-05-31 12:44
学学霸
Rank: 2
等 级:论坛游民
帖 子:41
专家分:24
注 册:2015-5-16
收藏
得分:0 
谢谢,谢谢,太感谢了
可以了
但是为什么加多一行 if(islower(ch)){
就可以执行了呢?
2015-05-31 13:13
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 6楼 学学霸
if(islower(ch))不就是判断字符大小写么。。。
和你的源码思路一样的
表情不要乱发!

剑栈风樯各苦辛,别时冰雪到时春
2015-05-31 13:16
快速回复:if的多重选择switch
数据加载中...
 
   



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

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