C语言程序问题,请大神指教,谢谢

zh阿伟 发布于 2014/03/04 13:04
阅读 1K+
收藏 0

有逻辑上的错误,帮我看看是哪里的错误呢,谢谢

#include<stdio.h>
int main()
{
 char a,ch;
 printf("input a character\n",a);
 scanf("%c",&ch);
 ch=((ch>'A'||ch=='A')&&(ch<'G'||ch=='G'));
 ch=((ch>'A'||ch=='A')&&(ch>'G'||ch=='G'))?ch:(ch-32);
 a=ch;
 switch(a)
 {
  A:printf("Monday\n");break;
  B:printf("Tuesday\n");break;
  C:printf("Wednesday\n");break;
  D:printf("Thursday\n");break;
  E:printf("Friday\n");break;
  F:printf("Saturday\n");break;
  G:printf("Sunday\n");break;
  default:printf("error\n");
    }
 
} 
加载中
0
stupidgrass
stupidgrass

ch=((ch>'A'||ch=='A')&&(ch<'G'||ch=='G'));
 ch=((ch>'A'||ch=='A')&&(ch>'G'||ch=='G'))?ch:(ch-32);
这两句话很有问题,不知道你想说什么
续传奇
续传奇
回复 @js阿超 : 你那两句话中,括号里面的内容经运算得到的是一个布尔值
zhengyijie
zhengyijie
回复 @js阿超 : 回复 @js阿超 : 第一个语句,会把ch 赋值为 0或者1,然后第二个语句,0-32,赋值给ch,肯定不会是你想要的值了。自己打印出来看看是啥。。
z
zh阿伟
我把那两句删了,结果运行正确,是我想多了,但为什么加上那两句就不对啊
0
进击的企鹅
进击的企鹅
switch连个case都没有
0
anonymity_
anonymity_
=号是赋值,不知道你那两句话想说明什么。
z
zh阿伟
说明保证输入的是A-G之间的字母,若是小写,就自动改成大写
0
sjwc
sjwc
先确定自己的逻辑
0
冰心
冰心
你这错误也太多了
0
goodcba
goodcba
#include<stdio.h>
void main()
{
 char a,ch;
 printf("input a character\n");
 scanf("%c",&ch);
if(ch>='A'&&ch<='G')
   a=ch;
else if(ch>='a'&&ch<='g')
    a=ch-32;

else printf("Error! please input again!\n");

switch(a)

 {
 case 'A': printf("Monday\n");break;
 case 'B': printf("Tuesday\n");break;
 case 'C': printf("Wednesday\n");break;
 case 'D': printf("Thursday\n");break;
 case 'E': printf("Friday\n");break;
 case 'F': printf("Saturday\n");break;
 case 'G': printf("Sunday\n");break;
    }


续传奇
续传奇
楼上的,最好把void main()改为int main(),最后再加上return 0结束
0
goodcba
goodcba

引用来自“goodcba”的答案

#include<stdio.h>
void main()
{
 char a,ch;
 printf("input a character\n");
 scanf("%c",&ch);
if(ch>='A'&&ch<='G')
   a=ch;
else if(ch>='a'&&ch<='g')
    a=ch-32;

else printf("Error! please input again!\n");

switch(a)

 {
 case 'A': printf("Monday\n");break;
 case 'B': printf("Tuesday\n");break;
 case 'C': printf("Wednesday\n");break;
 case 'D': printf("Thursday\n");break;
 case 'E': printf("Friday\n");break;
 case 'F': printf("Saturday\n");break;
 case 'G': printf("Sunday\n");break;
    }


switch()-case,字符要用单引号括住。判断字符用if~我也是初学者~!
0
Lyuans
Lyuans

亲,你不是初学者,是根本不懂

bobdog1986
bobdog1986
神回复啊
0
摩崖

07  ch=((ch>'A'||ch=='A')&&(ch<'G'||ch=='G'));

08  ch=((ch>'A'||ch=='A')&&(ch>'G'||ch=='G'))?ch:(ch-32);
第7行去掉使用第8行,三目运算是“?”前面的条件成立则 传ch值  否则传 (ch-32)。

switch语句需要加case  

int main()函数作为一个有返回值的函数 在最后要加 return 0;

0
troyyuan
troyyuan

  1 #include <stdio.h>                                                                            
  2 #include <ctype.h>                                                                            
  3                                                                                               
  4 int main(void)                                                                                
  5 {                                                                                             
  6     char day;                                                                                 
  7                                                                                               
  8     printf("choose a day[a-g]:");                                                             
  9     scanf("%c", &day);                                                                        
 10     day = toupper(day);                                                                       
 11                                                                                               
 12     switch (day) {                                                                            
 13         case 'A':                                                                             
 14             printf("Monday\n");                                                               
 15             break;                                                                            
 16         case 'B':                                                                             
 17             printf("Tuesday\n");                                                              
 18             break;                                                                            
 19         case 'C':                                                                             
 20             printf("Wednesday\n");                                                            
 21             break;                                                                            
 22         case 'D':                                                                             
 23             printf("Thursday\n");                                                             
 24             break;                                                                            
 25         case 'E':                                                                             
 26             printf("Friday\n");                                                               
 27             break;                                                                            
 28         case 'F':                                                                             
 29             printf("Saturday\n");                                                             
 30             break;                                                                            
 31         case 'G':                                                                             
 32             printf("Sunday\n");                                                               
 33             break;                                                                            
 34         default:                                                                              
 35             printf("your input is %c, please input a to g\n", day);                           
 36     }                                                                                         
 37                                                                                               
 38     return 0;                                                                                 
 39 } 

返回顶部
顶部