c语言运行不能得出答案的问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 04:45:44
程序代码如下 本身能运行 没有语法错误 但可能存在逻辑错误 想请谁帮忙检查一下 谢谢谢谢!

#include<stdio.h>
void main()
{char sya,syb;
float lia,lib;
int av=(lia+lib)/2;
printf("请按顺序输入考试成绩sya syb lia lib\n");
scanf("%c%c%f%f",&sya,&syb,&lia,&lib);
if(sya=='A'&&syb=='A')
{
if(av>=90)
printf("优秀\n");
else if(av>=80)
printf("良好\n");
else if(av>=70)
printf("中等\n");
else if(av>=60)
printf("及格\n");
else
printf("不及格\n");}
else
{ if(av>=90)
printf("良好\n");
else if(av>=80)
printf("中等\n");
else if(av>=70)
printf("及格\n");
else
printf("不及格\n");
}

}
程序已经能运行了,但能不能告诉我为什

#include<stdio.h>
void main()
{char sya,syb;
float lia,lib;
int av; //这里定义
printf("请按顺序输入考试成绩sya syb lia lib\n");
scanf("%c %c %f %f",&sya,&syb,&lia,&lib); //输入时:使用空格格开
av=(lia+lib)/2; //你输入了才能求平均吧
if(sya=='A'&&syb=='A')
{
if(av>=90)
printf("优秀\n");
else if(av>=80)
printf("良好\n");
else if(av>=70)
printf("中等\n");
else if(av>=60)
printf("及格\n");
else
printf("不及格\n");}
else
{ if(av>=90)
printf("良好\n");
else if(av>=80)
printf("中等\n");
else if(av>=70)
printf("及格\n");
else
printf("不及格\n");
}

}

肯定是scanf("%c%c%f%f",&sya,&syb,&lia,&lib);
加空格或者逗号
scanf("%c %c %f %f",&sya,&syb,&lia,&li