复旦三位一体笔试内容:switch语句错在哪了?
来源:百度文库 编辑:查人人中国名人网 时间:2024/05/29 16:42:42
#include <stdio.h>
main()
{
char grade;
scanf("%c",grade);
switch(grade)
{
case 'a':printf("85~100\n"); break;
case 'b':printf("70~84\n"); break;
case 'c':printf("60~69\n"); break;
case 'd':printf("<60\n"); break;
default :printf("error\n");
}
getch();
}
main()
{
char grade;
scanf("%c",grade);
switch(grade)
{
case 'a':printf("85~100\n"); break;
case 'b':printf("70~84\n"); break;
case 'c':printf("60~69\n"); break;
case 'd':printf("<60\n"); break;
default :printf("error\n");
}
getch();
}
scanf("%c",&grade);
好象没问题,提示的错误是什么?
#include <stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char grade;
scanf("%c",&grade);
switch(grade)
{
case 'a':printf("85~100\n"); break;
case 'b':printf("70~84\n"); break;
case 'c':printf("60~69\n"); break;
case 'd':printf("<60\n"); break;
default :printf("error\n");
}
getch();
}
注意这句scanf("%c",&grade);
scanf("%c",&grade);
scanf函数的参数是一个地址的,如果你直接给grade 的话,由于grade 里面是一个乱数字,可能涉及到系统地址,导致错误。用&grade取他的地址后就好了,这个地址是系统给你分配的一个可用的地址。用于存储这个变量的