我正在尝试编写一个程序,允许用户将正整数输入到大小为 12 的一维数组中,并捕获小于 1 的输入。然后该程序将值小于 30 的整数复制到第二个三维数组中。并且还将大于等于30的整数复制到第三个三维数组中
它将三个数组以表格形式显示在一起。该程序将使用三个数组、1 个单个数组和 2 个三维数组。
这就是我所做的:
#include <stdio.h>
#define N 12
int main() {
int a[N], b[2][2][3], c[2][2][3];
int i, j, k, l;
for(i = 1; i <= N; i++){
printf("Input %d: ", i);
scanf("%d", &a[i]);
if(a[i] < 30){
for(j = 1; j <= 2; j++){
for(k = 1; k <= 2; k++){
for(l = 1; l <= 3; l++){
b[j][k][l] = a[i];
}
}
}
}
if(a[i] >= 30){
for(j = 1; j <= 2; j++){
for(k = 1; k <= 2; k++){
for(l = 1; l <= 3; l++){
c[j][k][l] = a[i];
}
}
}
}
while(a[i] < 1){
if (a[i] < 5){
printf("\nInvalid Input\nEnter 1 or greater than 1 only\n\n");
printf("Input %d: ", i);
scanf("%d", &a[i]);
if(a[i] < 30){
for(j = 1; j <= 2; j++){
for(k = 1; k <= 2; k++){
for(l = 1; l <= 3; l++){
b[j][k][l] = a[i];
}
}
}
}
if(a[i] >= 30){
for(j = 1; j <= 2; j++){
for(k = 1; k <= 2; k++){
for(l = 1; l <= 3; l++){
c[j][k][l] = a[i];
}
}
}
}
}
}
}
printf("\nArray 1: \n");
for(i = 1; i <= N; i++)
printf("a[%d] = %d \n", i, a[i]);
printf("\n\nArray with less than 30: \n");
for(j = 1; j <= 2; j++){
for(k = 1; k <= 2; k++){
for(l = 1; l <= 3; l++){
printf("b[%d][%d][%d] = %d \n", j, k, l, b[j][k][l]);
}
}
}
printf("\n\nArray with greater than or equal to 30: \n");
for(j = 1; j <= 2; j++){
for(k = 1; k <= 2; k++){
for(l = 1; l <= 3; l++){
printf("c[%d][%d][%d] = %d \n", j, k, l, c[j][k][l]);
}
}
}
}
然而,当我尝试运行该程序时,它显示了错误的值。有人可以告诉我我的代码有什么问题吗?谢谢。