尝试使用三元运算符基于平均成绩将字符串分配给“remarks”变量。但是,“remark”未能被正确地分配。
#include <stdio.h>
int main(void) {
int grade1, grade2, grade3;
double average;
char remarks[15];
printf("Enter Grades of each subjects: \nEnglish: ");
scanf("%d", &grade1);
printf("Mathematics: ");
scanf("%d", &grade2);
printf("Programming: ");
scanf("%d", &grade3);
average = (grade1 + grade2 + grade3) / 3;
remarks[15] = (average > 74) ? "Passed":"Failed";
printf("\nAverage grade: %.2lf %s", average, remarks);
这个程序旨在获取3个数字(成绩)的平均值,然后根据结果声明是否通过。
程序正确获取输入,但只打印出平均值。
当我修改代码并像这样编写时,它可以正常工作。
printf("\nAverage grade: %.2lf %s", average, average > 74 ? "Passed" : "Failed");
我认为问题出在获取所有分数后重新分配变量remarks。
编辑:在第一个printf
语句中添加了占位符%s。
remarks[15] =“Passed”;
,然后从那里找出为什么那行代码毫无意义。 - Lundin