输出合格学生的成绩,感觉我输入的程序没被运行就被直接输出了结果,请问一下这是为什么,应该怎么解决呢
代码帮你改了一下,参见如下:
#include<stdio.h>
int main()
{
float score[4][4] = {33,66,78,88,45,76,91,921,91,84,95,82,98,62,85,87};
int flag,i,j;
for(i = 0 ; i < 4 ; i++)
{
flag = 1; // 下一个学生成绩判断,重置标识为1【默认都合格】
for(j = 0; j < 4 ; j++)
{
if(score[i][j] < 60) { // 存在不及格的,设置为 0,跳出循环
flag = 0;
break;
}
}
if(flag==1) // 全部都及格
{
printf("成绩全部台格学生成绩:\n");
for(j = 0; j < 4; j++)
printf("%-5.1f", score[i][j]);
printf("\n");
}
}
return 0;
}
如有帮助,欢迎采纳哈!
代码能贴出来吗
为什么for循环不加花括号
知道不加括号只会执行后面一行吗
希望此回答对有所帮助,望采纳。
下图为运行结果:
下面是我的解题思路,你可以参考一下,有什么问题可以私聊我。
解题思路在代码注释中,请看代码。
代码如下:
#include <stdio.h>
int main(void)
{
float score[4][4] = {{33,66,78,88},{45,76,91,92},{91,84,95,82},{98,62,85,87}};// 定义 4行4列的数组
// 对于二维数组可以这样理解
// score[0][0], score[0][1], score[0][2], score[0][3]
// score[1][0], score[1][1], score[1][2], score[1][3]
// score[2][0], score[2][1], score[2][2], score[2][3]
// score[3][0], score[3][1], score[3][2], score[3][3]
int i = 0,j = 0;
for(i = 0;i < 4;i++)// 遍历数组的行 score[i][]
{
printf("成绩全部合格学生成绩:\n");
for(j = 0;j < 4;j++)// 遍历数组的列 score[i][j]
{
if(score[i][j] > 60)// 判断 score[i][j] 中的数据 是否大于 60
{
printf("%5.1f",score[i][j]);// 是,则成绩及格,输出此成绩
}
}
printf("\n");
}
return 0;
}