user-0 提问: 怎么改

回复:
user: user-0
content: 引用 3 楼 cfjtaishan 的回复:#include<stdio.h>  int main() {     char ch;      printf("请输入一个字符");     scanf("%c", &ch);      if (ch >= 'a' && ch <= 'z')         printf("属于小写字母%c\n", ch);     else if (ch >= 'A' && ch <= 'Z')         printf("属于大写字母%c\n", ch);     else if (ch >= '0' && ch <= '9')         printf("属于数字%d", ch);     else         printf("属于其他%c", ch);      return 0; } 基本的语法问题，建议自己还是要通过编译器提供的error或warning解决。           你的这个 ，我以前试了  ，编译不了

user: user-1
content: 引用 8 楼 qq_39317811 的回复:[quote=引用 3 楼 cfjtaishan 的回复:] #include<stdio.h>  int main() {     char ch;      printf("请输入一个字符");     scanf("%c", &ch);      if (ch >= 'a' && ch <= 'z')         printf("属于小写字母%c\n", ch);     else if (ch >= 'A' && ch <= 'Z')         printf("属于大写字母%c\n", ch);     else if (ch >= '0' && ch <= '9')         printf("属于数字%d", ch);     else         printf("属于其他%c", ch);      return 0; } 基本的语法问题，建议自己还是要通过编译器提供的error或warning解决。 你的这个 ，我以前试了  ，编译不了 [/quote]   提示什么error或warning?

user: user-2
content: 引用 2 楼 赵4老师的回复:在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。 //请今后要用 char c; scanf("%c",&c); //时，都改为 char s[2]; char c; scanf("%1s",s); c=s[0]; 请问老师，这样写的作用是什么？不大懂。

user: user-2
content: 引用 6 楼 赵4老师的回复:[quote=引用 4 楼 qq_35881819 的回复:] [quote=引用 2 楼 赵4老师的回复:]在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。 //请今后要用 char c; scanf("%c",&c); //时，都改为 char s[2]; char c; scanf("%1s",s); c=s[0]; 请问老师，这样写的作用是什么？不大懂。[/quote] 自动跳过一个或多个空格或Tab字符或回车换行，读取下一个字符。[/quote] 感谢老师，懂了。 学艺不精，我还需要锻炼。

user: user-3
content: #include<stdio.h> int main() { char ch; printf("请输入一个字符"); scanf("%c", &ch); if (ch >= 'a'&&ch <= 'z') { printf("属于小写字母%c", ch); } else  { if (ch >= 'A'&&ch <= 'Z') { printf("属于大写字母%c", ch); } else { if (ch >= '0'&&ch <= '9') printf("属于数字%d", ch);         }    else         "属于其他"=ch    printf("属于其他%c", ch);        return 0;  } } 加红部分的else没有if跟其配对，所以会报错。 改为 #include "stdafx.h" #include<stdio.h>  int _tmain(int argc, _TCHAR* argv[]) { 	char ch; 	printf("请输入一个字符"); 	scanf("%c", &ch); 	if (ch >= 'a'&&ch <= 'z') 	{ 		printf("属于小写字母%c", ch); 	} 	else  	{ 		if (ch >= 'A'&&ch <= 'Z') 		{ 			printf("属于大写字母%c", ch); 		} 		else 		{ 			if (ch >= '0'&&ch <= '9') 				printf("属于数字%d", ch); 			else  			{ 					printf("属于其他%c", ch); 			} 		}   	   return 0;  	} 	return 0; }

user: user-4
content: 引用 4 楼 qq_35881819 的回复:[quote=引用 2 楼 赵4老师的回复:]在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。 //请今后要用 char c; scanf("%c",&c); //时，都改为 char s[2]; char c; scanf("%1s",s); c=s[0]; 请问老师，这样写的作用是什么？不大懂。[/quote] 自动跳过一个或多个空格或Tab字符或回车换行，读取下一个字符。

user: user-4
content: 在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。 //请今后要用 char c; scanf("%c",&c); //时，都改为 char s[2]; char c; scanf("%1s",s); c=s[0];

user: user-5
content: 修改后的代码如下：  int main(void) { 	char ch; 	printf("请输入一个字符"); 	scanf("%c", &ch); 	if (ch >= 'a'&&ch <= 'z') 	{ 		printf("属于小写字母%c", ch); 	} 	else if (ch >= 'A'&&ch <= 'Z') 	{ 		printf("属于大写字母%c", ch); 	} 	else if (ch >= '0'&&ch <= '9') 	{ 		printf("属于数字%d", ch - '0'); 	} 	else 	{ 		printf("属于其他\n"); 	} 	return 0; } 用心回答每个问题，如果对您有帮助，请采纳答案好吗，谢谢！

user: user-1
content: #include<stdio.h>  int main() {     char ch;      printf("请输入一个字符");     scanf("%c", &ch);      if (ch >= 'a' && ch <= 'z')         printf("属于小写字母%c\n", ch);     else if (ch >= 'A' && ch <= 'Z')         printf("属于大写字母%c\n", ch);     else if (ch >= '0' && ch <= '9')         printf("属于数字%d", ch);     else         printf("属于其他%c", ch);      return 0; } 基本的语法问题，建议自己还是要通过编译器提供的error或warning解决。