关于用int 和char 控制 while循环的问题
写了下面两段程序, 第一段用char型变量作控制变量,编译通过但运行不正确,无法控制程序,而第二段程序仅仅把char换位int(3行标有modified,其余代码相同),就可以达到控制的目的。 请教下,第一段错在哪里呢?想用字符或字符串控制的话,应该怎么写呢?谢谢~
#include<stdio.h>
#include<string.h>
main()
{
int input;
char contr;
char *month[13] = {"Illegal month", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
while (contr!='N'&& contr!='n')
{
printf("Input a number for month:\n");
scanf("%d",&input);
if (input<1||input>12)
puts(month[0]);
else
puts(month[input]);
printf("Want to continue?(y or n)\n");
scanf("%c", &contr);
}
}
////////////////////////////////////////
#include<stdio.h>
#include<string.h>
main()
{
int input;
int contr; // modified
char *month[13] = {"Illegal month", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
while (contr!=1)
{
printf("Input a number for month:\n");
scanf("%d",&input); // modified
if (input<1||input>12)
puts(month[0]);
else
puts(month[input]);
printf("Want to continue?\n");
scanf("%d", &contr); // modified
}
}