第4关:switch语句
本关需要你使用switch case
语句完成一个判断学员成绩等级的小程序。
具体任务如下:
输入考试成绩(0-100
之间的整数),根据该分数所处的区间,输出对应的等级。
等级设置如下:
分数区间 等级 [90,100] A
[80,89] B
[70,79] C
[60,69] D
[0,59] E
程序运行示例:
输入:89
。
输出:The grade is: B
。
#include <stdio.h>
char fun(int s){
char grade;//存储分数对应的等级
s = s/10%10;
switch(s){
case 0:s = 'A';break;
case 9:s = 'A';break;
case 8:s = 'B';break;
case 7:s = 'C';break;
case 6:s = 'D';break;
default:s = 'E';break;
}return s;
}
int main (void)
{
int score;
scanf ("%d", &score);
printf("The grade is: %c", fun(score));
return 0;
}
第3关:fun函数
本关需要你完成编写函数fun
计算一个数组中的值出现的次数。
具体任务如下:
将一个数组的值按逆序重新存放,例如,原来顺序为:8,6
,5
,4
,1
。要求 改为:1
,4
,5
,6
,8
。
#include <stdio.h>
#define N 10
void fun(int arr[],int n)
{
int t;
for(int i = 0;i<N/2;i++){
t = arr[i];
arr[i] = arr[N-1-i];
arr[N-1-i] = t;
}
}
int main()
{
int a[N]={34,56,4,1,10,8,6,5,4,1},i;
getchar();
for(i=0;i<N;i++)
printf("%3d",a[i]);
printf("\n");
fun(a,N);
for(i=0;i<N;i++)
printf("%3d",a[i]);
return 0;
}
第2关:嵌套循环程序设计
本关需要你完成一个嵌套循环程序设计。
具体任务如下:
输入打印行数n
,输出共2n
-1行的菱形。 例如: 输入:5。 输出:
#include <stdio.h>
int main(int argc, const char * argv[])
{
int n;
scanf("%d",&n);
for(int i = 1; i <= n; i++)//外层循环,循环1次 要完成1行的打印.
{
for(int m=n-i;m>0;m--){
printf(" ");
}
for(int j = 1; j <= 2*i-1;j++)
{
printf("*");
}
printf("\n");
}
for(int i = 1; i < n; i++)//外层循环,循环1次 要完成1行的打印.
{
for(int m=1;m<=i;m++){
printf(" ");
}
for(int j = 2*(n-i)-1; j >0;j--)
{
printf("*");
}
printf("\n");
}
return 0;
}
第1关:求a^b的个位数
具体任务如下:
给定两个数a
,b(0 < a&&b <=2^30)
,求a^b
的最后一位数。(即a
的b
次幂的个位数) 提示:这题有一定的难度,小心超时,或超出数字的存储极限。
效果如下: 输入:6667 4454
。 输出:9
。
#include <stdio.h>
#include <math.h>
int main(){
int a[20],b[20];
int x,y,c2,c1=0,m;
scanf("%d %d",&x,&y);
int i=0;
//printf("%d\n",x);
c1 = x%10;//取出x的个位数字
//printf("%d\n",c1);
c2 = y%4;
//printf("%d\n",c2);
m= pow(c1,c2);
printf("%d",m%10);
}
如果文章对你有帮助的话,可不可以点个赞鼓励以下我!! ^o^ 谢谢了!!!