user-0 提问: 急求c语言大神

回复:
user: user-0
content: 引用 11 楼 @__Chao - L的回复:[quote=引用 10 楼 @__Chao - L的回复:][quote=引用 7 楼 ?Victor.??的回复:][quote=引用 6 楼 寻开心的回复:]你自己写吧， 不知道啥是你能看得懂的  把有问题的代码贴出来， 不要贴图哈，  有问题大家帮你解决， 不能上来就要被人给你完整的源码， “看别人的比自己写还难”，相信这句话吧， 直接要答案也无助于自己的提高 //2020,1,17 //p115,3 #include<stdio.h> int main() { 	int a,p; 	char level; 	printf("输入等级请按1,输入分数请按2\n"); 	scanf("%d",&a); 	if(a==1) 	{ 		printf("请输入等级:\n"); 		scanf("%c",&level); 		switch(level) 		{ 			case 'A': 				printf(">=85"); 				break; 			case 'B': 				printf("70-85");	 				break; 			case 'C': 				printf("60-70"); 				break; 			case 'D': 				printf("<60");	 				break; 			default: 				printf("输入成绩有错!"); 				break;	 	 		} 	} 	if(a==2) 	{ 		printf("请输入分数:\n"); 		scanf("%d",&p); 		if(p>=85) 		printf("A"); 		else if(p>=70&&p<85) 		printf("B"); 		else if(p>=60&&p<70) 		printf("D");  	} 	return 0; } 这个输入1之后，直接输出成绩有错，该怎么办呀[/quote] 应该是错在scanf("%c",&level)改成scanf("%c",level)，你要用&的话是在使用指针的时候用[/quote] 我上面说错了，c语言最近比较少看了[/quote] 嗯，谢谢帮助

user: user-0
content: 谢谢大家

user: user-1
content: 你输入1的时候敲了一个回车，level接收了这个回车\n，自然就错了 scanf("%d\n")会让你多敲一个回车，也有可能引起错误，加个getchar()接收掉\n即可

user: user-0
content: 引用 6 楼 寻开心的回复:你自己写吧， 不知道啥是你能看得懂的  把有问题的代码贴出来， 不要贴图哈，  有问题大家帮你解决， 不能上来就要被人给你完整的源码， “看别人的比自己写还难”，相信这句话吧， 直接要答案也无助于自己的提高 //2020,1,17 //p115,3 #include<stdio.h> int main() { 	int a,p; 	char level; 	printf("输入等级请按1,输入分数请按2\n"); 	scanf("%d",&a); 	if(a==1) 	{ 		printf("请输入等级:\n"); 		scanf("%c",&level); 		switch(level) 		{ 			case 'A': 				printf(">=85"); 				break; 			case 'B': 				printf("70-85");	 				break; 			case 'C': 				printf("60-70"); 				break; 			case 'D': 				printf("<60");	 				break; 			default: 				printf("输入成绩有错!"); 				break;	 	 		} 	} 	if(a==2) 	{ 		printf("请输入分数:\n"); 		scanf("%d",&p); 		if(p>=85) 		printf("A"); 		else if(p>=70&&p<85) 		printf("B"); 		else if(p>=60&&p<70) 		printf("D");  	} 	return 0; } 这个输入1之后，直接输出成绩有错，该怎么办呀

user: user-2
content: 引用 10 楼 @__Chao - L的回复:[quote=引用 7 楼 ?Victor.??的回复:][quote=引用 6 楼 寻开心的回复:]你自己写吧， 不知道啥是你能看得懂的  把有问题的代码贴出来， 不要贴图哈，  有问题大家帮你解决， 不能上来就要被人给你完整的源码， “看别人的比自己写还难”，相信这句话吧， 直接要答案也无助于自己的提高 //2020,1,17 //p115,3 #include<stdio.h> int main() { 	int a,p; 	char level; 	printf("输入等级请按1,输入分数请按2\n"); 	scanf("%d",&a); 	if(a==1) 	{ 		printf("请输入等级:\n"); 		scanf("%c",&level); 		switch(level) 		{ 			case 'A': 				printf(">=85"); 				break; 			case 'B': 				printf("70-85");	 				break; 			case 'C': 				printf("60-70"); 				break; 			case 'D': 				printf("<60");	 				break; 			default: 				printf("输入成绩有错!"); 				break;	 	 		} 	} 	if(a==2) 	{ 		printf("请输入分数:\n"); 		scanf("%d",&p); 		if(p>=85) 		printf("A"); 		else if(p>=70&&p<85) 		printf("B"); 		else if(p>=60&&p<70) 		printf("D");  	} 	return 0; } 这个输入1之后，直接输出成绩有错，该怎么办呀[/quote] 应该是错在scanf("%c",&level)改成scanf("%c",level)，你要用&的话是在使用指针的时候用[/quote] 我上面说错了，c语言最近比较少看了

user: user-2
content: 引用 7 楼 ?Victor.??的回复:[quote=引用 6 楼 寻开心的回复:]你自己写吧， 不知道啥是你能看得懂的  把有问题的代码贴出来， 不要贴图哈，  有问题大家帮你解决， 不能上来就要被人给你完整的源码， “看别人的比自己写还难”，相信这句话吧， 直接要答案也无助于自己的提高 //2020,1,17 //p115,3 #include<stdio.h> int main() { 	int a,p; 	char level; 	printf("输入等级请按1,输入分数请按2\n"); 	scanf("%d",&a); 	if(a==1) 	{ 		printf("请输入等级:\n"); 		scanf("%c",&level); 		switch(level) 		{ 			case 'A': 				printf(">=85"); 				break; 			case 'B': 				printf("70-85");	 				break; 			case 'C': 				printf("60-70"); 				break; 			case 'D': 				printf("<60");	 				break; 			default: 				printf("输入成绩有错!"); 				break;	 	 		} 	} 	if(a==2) 	{ 		printf("请输入分数:\n"); 		scanf("%d",&p); 		if(p>=85) 		printf("A"); 		else if(p>=70&&p<85) 		printf("B"); 		else if(p>=60&&p<70) 		printf("D");  	} 	return 0; } 这个输入1之后，直接输出成绩有错，该怎么办呀[/quote] 应该是错在scanf("%c",&level)改成scanf("%c",level)，你要用&的话是在使用指针的时候用

user: user-3
content: 你自己写吧， 不知道啥是你能看得懂的  把有问题的代码贴出来， 不要贴图哈，  有问题大家帮你解决， 不能上来就要被人给你完整的源码， “看别人的比自己写还难”，相信这句话吧， 直接要答案也无助于自己的提高

user: user-4
content: 你这就把他当作两个题写就好了啊。或者你可以定义一个变量，先提示选择什么方式输入成绩，比较变量，如果是百分制执行一段代码，如果是等级制执行另一段代码，用一个变量去控制两种输入方法

user: user-0
content: 引用 2 楼 寻开心的回复:int     score [] = {100， 85,   70,   60,   0   } char* level [] = {  "S",    "A", "B",  "C", "D" }  输入程序成绩s，就在score里面查询，      for ( i=1; i<4; i++ )          if( s>score[i] )  {printf("%s", level[i]); break;}  如果输入等级l， 就在level里面查找    for ( i=1; i<4; i++ )        if （strcmpy（l， level[i] )  printf("%d - %d", score[i], score[i-1]), break; 能发一下完整的代码吗，有点看不懂（＃－.－），谢谢

user: user-0
content: 引用 1 楼 與蘤舊縐的回复:不是写明白了吗，A对应85-100，B……，一个swith可以搞定，第二个switch比较难想的话就if else if else if ……吧 但是我要把他们统一到一起，就是输入字母，输出分数段，输入分数，输出等级，在一个程序里

user: user-3
content: int     score [] = {100， 85,   70,   60,   0   } char* level [] = {  "S",    "A", "B",  "C", "D" }  输入程序成绩s，就在score里面查询，      for ( i=1; i<4; i++ )          if( s>score[i] )  {printf("%s", level[i]); break;}  如果输入等级l， 就在level里面查找    for ( i=1; i<4; i++ )        if （strcmpy（l， level[i] )  printf("%d - %d", score[i], score[i-1]), break;

user: user-1
content: 不是写明白了吗，A对应85-100，B……，一个swith可以搞定，第二个switch比较难想的话就if else if else if ……吧