C程序的条件运算符问题,求大神看看错在哪里了,看了好久没看懂

复制代码运行没发现任何问题?!看看是否其他问题。

//题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分用B表示,60分以下用C表示。
//分析:
#include<stdio.h> 
int main(){
	int grade[20],i;
	char student[20];
	printf("请输入成绩:\n");
	for(i=0 ; i<20 ; i++){
		scanf("%d",&grade[i]);
	}
	i = 0;
	while(i<20){
		grade[i]>=90 ? student[i] = 'A' :grade[i]>=60&&grade[i]<=89 ? student[i] = 'B' :student[i] = 'C';
		printf("the student[%d] is : %c\n",i+1,student[i]);
		i++;		
	}
}

 

这么的写就可以运行,但是上面那种写法就不可以,为啥呢

因为三目运算符a?b:c相当于

if(a) return b;
else return c;

只能返回值,不能返回表达式