c语言 - 为什么我的 if else 在此代码中不起作用?我们不能把其他东西放在另一个循环中,还是只是我的笔记本电脑不工作?


#include <stdio.h>
int main(){
int banyak = 3;
int nilai[banyak];
char grade;
for (int x=0; x<= banyak; x++){
printf("input nilai[%d]: ", x);
scanf("%d", &nilai[x]);
}
for (int x=0; x<= 5; x++){
if (nilai[x] >= 90){grade = 'A';}
else if (nilai[x] >= 70){grade = 'B';}
else {grade = 'C';}
printf("nilai[%d]: %s", x, grade);
}
return 0;
}

在此处输入图像描述

您已经将数组的大小nilai[]初始化为3(存储在变量banyak中(。这意味着在内存中为程序创建了一个大小为3的数组。现在,在大多数流行的编程语言中,数组以0作为索引开始(索引基本上是内存地址,数组将数据存储在相邻的块中,即彼此相邻,因此索引为0,1,2,3…(

那么,你的线路

printf("input nilai[%d]:",x(;

打印输入nilai[3],但没有用于它的块,因为只创建了块0,1,2。(尺寸=3(

因此,出现您已附加的图像的错误。

此外,在第二个循环中,在处理数组时,不能只循环任何随机数。您必须将x限制为array.length-1,因为这是最后一个索引。因此,在第二个循环中,for((语句将是

用于(int x=0;x<3;x++(

用于(int x=0;x<=2;x++(

最新更新