题目描述
学习成绩的百分制和等级制、GPA之间有一个对应关系,如下
百分制成绩 等级制成绩 学分绩点(GPA)
93-100 A 4
90-92 A- 3.67
87-89 B+ 3.33
83-86 B 3
80-82 B- 2.67
77-79 C+ 2.33
73-76 C 2
70-72 C- 1.67
66-69 D+ 1.33
60-65 D 1
<60 F 0
特殊要求
无
输入
百分制成绩(整数)
输出
第一行:百分制成绩,用%5.2f格式
第二行:等级制成绩,用%s表示字符串
第三行:GPA成绩,用%5.2f格式
样例输入
99
样例输出
99.00
A
4.00
提示
注意if/else if的使用
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
#include<stdio.h>
int main()
{
int sc;
float fc,gpa;
char *s;
scanf("%d",&sc);
fc = (float)sc;
if (sc>=93 && sc<=100) {
s = "A";
gpa = 4;
} else if (sc>=90 && sc<=92) {
s = "A-";
gpa = 3.67;
} else if (sc>=87 && sc<=89) {
s = "B+";
gpa = 3.33;
} else if (sc>=83 && sc<=86) {
s = "B";
gpa = 3;
} else if (sc>=80 && sc<=82) {
s = "B-";
gpa = 2.67;
} else if (sc>=77 && sc<=79) {
s = "C+";
gpa = 2.33;
} else if (sc>=73 && sc<=76) {
s = "C";
gpa = 2;
} else if (sc>=70 && sc<=72) {
s = "C-";
gpa = 1.67;
} else if (sc>=66 && sc<=69) {
s = "D+";
gpa = 1.33;
} else if (sc>=60 && sc<=65) {
s = "D";
gpa = 1;
} else if (sc<60) {
s = "F";
gpa = 0;
}
printf("%5.2f\n",fc);
printf("%s\n",s);
printf("%5.2f\n",gpa);
return 0;
}
来段简单一点的代码
#include <stdio.h>
#define SIZE 11
int main()
{
int score[SIZE] = {93,90,87,83,80,77,73,70,66,60,0};
char *grade[SIZE] = {"A","A-","B+","B","B-","C+","C","C-","D+","D","F"};
float gpa[SIZE] = {4,3.67,3.33,3,2.67,2.33,2,1.67,1.33,1,0};
int n,i;
scanf("%d",&n);
for(i=0;i<SIZE;i++)
{
if(n>=score[i])
{
printf("%5.2f\n",(float)n);
printf("%s\n",grade[i]);
printf("%5.2f\n",gpa[i]);
break;
}
}
return 0;
}