| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 410 人关注过本帖
标题:C 语言IF ELSE IF 问题求解释
只看楼主 加入收藏
dbcjh
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-12-22
结帖率:100%
收藏
 问题点数:0 回复次数:3 
C 语言IF ELSE IF 问题求解释
#include<stdio.h>
void f(char w,char r,char t, char y)
{
   
 if(w=='A'&&r=='A'&&t=='A'&&y=='A')
printf("总分是40\n");
else if(w=='A'&&r=='A'&&t=='A'&&y=='B')
printf("总分是30\n");
else if(w=='A'&&r=='A'&&t=='B'&&y=='A')
printf("总分是30\n");
else if(w=='A'&&r=='B'&&t=='A'&&y=='A')
printf("总分是30\n");
else if(w=='B'&&r=='A'&&t=='A'&&y=='A')
printf("总分是30\n");
else if(w=='A'&&r=='A'&&t=='B'&&y=='B')
printf("总分是20\n");
else if(w=='B'&&r=='B'&&t=='A'&&y=='A')
printf("总分是20\n");
else if(w=='A'&&r=='B'&&t=='B'&&y=='A')
printf("总分是20\n");
else if(w=='B'&&r=='A'&&t=='A'&&y=='B')
printf("总分是20\n");
else if(w=='A'&&r=='A'&&t=='A'&&y=='B')
printf("总分是10\n");
else if(w=='A'&&r=='A'&&t=='B'&&y=='A')
printf("总分是10\n");
else if(w=='A'&&r=='B'&&t=='A'&&y=='A')
printf("总分是10\n");
else if(w=='B'&&r=='A'&&t=='A'&&y=='A')
printf("总分是10\n");
else
printf("总分是0\n");
}
int main()
{
    char t,u[9];
    int i,j;
    printf("input  name:");
    scanf("%s",&u);
    //gets(u);
    while(t=getchar()=='\n')
        printf("input class:");
    puts(u);
    printf("\t\tplease challenge\n");
    char a,b,c,d;
    printf("\t\t1.秦国的皇帝是谁\n");
    printf("\t\tA赢政B胡锦涛\n");
    printf("\t\t2.晋文公是哪位\n");
    printf("\t\tA重耳B介子推\n");
    printf("\t\t3.1769年,谁出世\n");
    printf("\t\tA拿破仑B凯撒\n");
    printf("\t\t4.拿破仑在哪兵\n");
    printf("\t\tA莱比锡B巴黎\n");
    printf("\t\t请选择正确答案:\n");
    scanf("%c %c %c %c",&a,&b,&c,&d);
    f(a,b,c,d);
    for(i=0;i<17;i++)
        printf("*");
    printf("\n");
    printf("正确答案A A A A\n");
    for(i=0;i<17;i++)
        printf("*");
    printf("\n");
    return 0;
}
为什么输入四个英语字母,用函数发送后,经IF ELSE IF语句,无论四个字母是否符合IF括号中的条件,总是显示“总分是0”,也就是说总执行最后的ELSE后面的语,其余IF ELSE IF语句不能执行
搜索更多相关主题的帖子: include 
2011-12-23 10:31
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 楼主 dbcjh
#include<stdio.h>
void f(char w,char r,char t, char y)
{
   
if(w=='A'&&r=='A'&&t=='A'&&y=='A')
printf("总分是40\n");
else if(w=='A'&&r=='A'&&t=='A'&&y=='B')
printf("总分是30\n");
else if(w=='A'&&r=='A'&&t=='B'&&y=='A')
printf("总分是30\n");
else if(w=='A'&&r=='B'&&t=='A'&&y=='A')
printf("总分是30\n");
else if(w=='B'&&r=='A'&&t=='A'&&y=='A')
printf("总分是30\n");
else if(w=='A'&&r=='A'&&t=='B'&&y=='B')
printf("总分是20\n");
else if(w=='B'&&r=='B'&&t=='A'&&y=='A')
printf("总分是20\n");
else if(w=='A'&&r=='B'&&t=='B'&&y=='A')
printf("总分是20\n");
else if(w=='B'&&r=='A'&&t=='A'&&y=='B')
printf("总分是20\n");
else if(w=='A'&&r=='A'&&t=='A'&&y=='B')
printf("总分是10\n");
else if(w=='A'&&r=='A'&&t=='B'&&y=='A')
printf("总分是10\n");
else if(w=='A'&&r=='B'&&t=='A'&&y=='A')
printf("总分是10\n");
else if(w=='B'&&r=='A'&&t=='A'&&y=='A')
printf("总分是10\n");
else
printf("总分是0\n");
}
int main()
{
    char t,u[9];
    int i,j;
    printf("input  name:");
    scanf("%s",&u);
    //gets(u);
    while(t=getchar()=='\n')
        printf("input class:");
    puts(u);
    printf("\t\tplease challenge\n");
    char a,b,c,d;  //变量定义放函数语句前面  
    printf("\t\t1.秦国的皇帝是谁\n");
    printf("\t\tA赢政B胡锦涛\n");
    printf("\t\t2.晋文公是哪位\n");
    printf("\t\tA重耳B介子推\n");
    printf("\t\t3.1769年,谁出世\n");
    printf("\t\tA拿破仑B凯撒\n");
    printf("\t\t4.拿破仑在哪兵\n");
    printf("\t\tA莱比锡B巴黎\n");
    printf("\t\t请选择正确答案:\n");
    scanf("%c %c %c %c",&a,&b,&c,&d); //  读入的是t = getchar()的前面字符
                                      // class: 后面输入AAAAA的话能得到40分
                                      // if - else  没问题。
            
    f(a,b,c,d);
    for(i=0;i<17;i++)
        printf("*");
    printf("\n");
    printf("正确答案A A A A\n");
    for(i=0;i<17;i++)
        printf("*");
    printf("\n");
    return 0;
}

梅尚程荀
马谭杨奚







                                                       
2011-12-23 11:30
dbcjh
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-12-22
收藏
得分:0 
回复 2楼 有容就大
t = getchar()的前面字符,要定义一个变量让它储存。
2011-12-23 13:07
caohui
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-12-17
收藏
得分:0 
你函数里面的列举少了有。你细数一下总共的组合有16种,你的貌似只有十四种。还有你使用if else结构很麻烦。推荐使用字符串存答案,读取答案的时候用循环。
2011-12-23 13:50
快速回复:C 语言IF ELSE IF 问题求解释
数据加载中...
 
   



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

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