创建 switch case 控制指令
Creating a switch case control instruction
这是代码
Write a code to find grade of a student based on the marks obtained by
him and as the system given below,
1. 90-100-->A
2. 80-90-->B
3. 70-80-->C
4. 60-70-->D
5. <60-->E
#include <stdio.h>
int main(){
int marks;
printf("Enter your marks(1-100)\n");
scanf("%d\n", &marks);
switch (marks)
{
case 1:
printf("Your Grade is A\n");
break;
case 2:
printf("Your Grade is B\n");
break;
case 3:
printf("Your Grade is C\n");
break;
case 4:
printf("Your Grade is D\n");
break;
case 5:
printf("Your Grade is E\n");
break;
}
return 0;
}
让我们忽略这个答案的错误处理和范围陷阱!
鉴于映射,您可以只进行整数除法
int grade = marks / 10;
然后 switch
在 grade
和 case
相应地(9,8,7,6,默认)
int main(){
整数标记;
printf("Enter your marks(1-100)\n");
scanf("%d\n", &marks);
int grade = marks / 10;
switch ( grade )
{
case 10:
case 9: { printf( "Your Grade is A\n" ); break; }
case 8: { printf( "Your Grade is B\n" ); break; }
case 7: { printf( "Your Grade is C\n" ); break; }
case 6: { printf( "Your Grade is D\n" ); break; }
default: { printf( "Your Grade is E\n" ); break; }
}
注意:有些编译器支持允许范围的语言扩展(例如)case 90 ... 100:
,但这些是非标准的,因此不应鼓励。
对于范围,在 C 中,您通常需要做一个 if-elseif-else
阶梯。
if ( marks > 100 ) { printf( "You cheated\n" ); }
else if ( marks > 90 ) { printf( "Your Grade is A\n" ); }
else if ( marks > 80 ) { printf( "Your Grade is B\n" ); }
else if ( marks > 70 ) { printf( "Your Grade is C\n" ); }
else if ( marks > 60 ) { printf( "Your Grade is D\n" ); }
else /* marks < 60 */ { printf( "Your Grade is E\n" ); }
您需要将 marks
转换为 [1, 5]
范围内的数字。例如,这可以使用数组来完成。
这里有一个演示程序。
#include <stdio.h>
int main(void)
{
unsigned int marks = 0;
printf( "Enter your marks(1-100): " );
scanf( "%u", &marks );
unsigned int grades[] = { 0, 60, 70, 80, 90 };
const size_t N = sizeof( grades ) / sizeof( *grades );
size_t i = 0;
while ( i != N && marks < grades[N - ++i] );
switch ( i )
{
case 1:
puts( "Your Grade is A" );
break;
case 2:
puts( "Your Grade is B" );
break;
case 3:
puts( "Your Grade is C" );
break;
case 4:
puts( "Your Grade is D" );
break;
case 5:
puts( "Your Grade is E" );
break;
}
return 0;
}
#include <stdio.h>
int main(){
int marks;
printf("Enter your marks between 0 to 100\n");
scanf("%d", &marks);
switch(marks/10){
case 10 :
case 9 :
/* Marks between 90-100 */
printf("Your Grade : A\n" );
break;
case 8 :
case 7 :
/* Marks between 70-89 */
printf("Your Grade : B\n" );
break;
case 6 :
/* Marks between 60-69 */
printf("Your Grade : C\n" );
break;
case 5 :
case 4 :
/* Marks between 40-59 */
printf("Your Grade : D\n" );
break;
default :
/* Marks less than 40 */
printf("You failed\n" );
}
return 0;
}
在switch语句中查找使用switch(marks/10)
如果你的分数是 80 那么 80/10 所以它会跳到案例 8.
这是代码
Write a code to find grade of a student based on the marks obtained by him and as the system given below,
1. 90-100-->A 2. 80-90-->B 3. 70-80-->C 4. 60-70-->D 5. <60-->E
#include <stdio.h>
int main(){
int marks;
printf("Enter your marks(1-100)\n");
scanf("%d\n", &marks);
switch (marks)
{
case 1:
printf("Your Grade is A\n");
break;
case 2:
printf("Your Grade is B\n");
break;
case 3:
printf("Your Grade is C\n");
break;
case 4:
printf("Your Grade is D\n");
break;
case 5:
printf("Your Grade is E\n");
break;
}
return 0;
}
让我们忽略这个答案的错误处理和范围陷阱!
鉴于映射,您可以只进行整数除法
int grade = marks / 10;
然后 switch
在 grade
和 case
相应地(9,8,7,6,默认)
int main(){ 整数标记;
printf("Enter your marks(1-100)\n");
scanf("%d\n", &marks);
int grade = marks / 10;
switch ( grade )
{
case 10:
case 9: { printf( "Your Grade is A\n" ); break; }
case 8: { printf( "Your Grade is B\n" ); break; }
case 7: { printf( "Your Grade is C\n" ); break; }
case 6: { printf( "Your Grade is D\n" ); break; }
default: { printf( "Your Grade is E\n" ); break; }
}
注意:有些编译器支持允许范围的语言扩展(例如)case 90 ... 100:
,但这些是非标准的,因此不应鼓励。
对于范围,在 C 中,您通常需要做一个 if-elseif-else
阶梯。
if ( marks > 100 ) { printf( "You cheated\n" ); }
else if ( marks > 90 ) { printf( "Your Grade is A\n" ); }
else if ( marks > 80 ) { printf( "Your Grade is B\n" ); }
else if ( marks > 70 ) { printf( "Your Grade is C\n" ); }
else if ( marks > 60 ) { printf( "Your Grade is D\n" ); }
else /* marks < 60 */ { printf( "Your Grade is E\n" ); }
您需要将 marks
转换为 [1, 5]
范围内的数字。例如,这可以使用数组来完成。
这里有一个演示程序。
#include <stdio.h>
int main(void)
{
unsigned int marks = 0;
printf( "Enter your marks(1-100): " );
scanf( "%u", &marks );
unsigned int grades[] = { 0, 60, 70, 80, 90 };
const size_t N = sizeof( grades ) / sizeof( *grades );
size_t i = 0;
while ( i != N && marks < grades[N - ++i] );
switch ( i )
{
case 1:
puts( "Your Grade is A" );
break;
case 2:
puts( "Your Grade is B" );
break;
case 3:
puts( "Your Grade is C" );
break;
case 4:
puts( "Your Grade is D" );
break;
case 5:
puts( "Your Grade is E" );
break;
}
return 0;
}
#include <stdio.h>
int main(){
int marks;
printf("Enter your marks between 0 to 100\n");
scanf("%d", &marks);
switch(marks/10){
case 10 :
case 9 :
/* Marks between 90-100 */
printf("Your Grade : A\n" );
break;
case 8 :
case 7 :
/* Marks between 70-89 */
printf("Your Grade : B\n" );
break;
case 6 :
/* Marks between 60-69 */
printf("Your Grade : C\n" );
break;
case 5 :
case 4 :
/* Marks between 40-59 */
printf("Your Grade : D\n" );
break;
default :
/* Marks less than 40 */
printf("You failed\n" );
}
return 0;
}
在switch语句中查找使用switch(marks/10) 如果你的分数是 80 那么 80/10 所以它会跳到案例 8.