#include <stdio.h>
int main() {
int array1[]={ 1, 5 ,23, 18};
int array2[]={ 14,2, 3, 1};
int array3[]; /* Ideal Output of program would be array3[]= {1,2,3,1} */
int a=0;
for (a=0; a<5; ++a)
{if (array1[a]<array2[a])
{array3[a]=array1[a]};
else if(array1[a]>=array2[a])
{array3[a]=array2[a]};
printf("%d", array3[a])
}
return=0
}
我想创建并打印一个数组,它从另外两个数组中获取最小的整数。在这个例子中,我想比较 1 和 14 并将 1 放入 array3[0]。
我也想打印array3
感谢您的帮助
正确格式化代码会使错误明显:
#include <stdio.h>
int main() {
int array1[]={ 1, 5, 23, 18};
int array2[]={ 14, 2, 3, 1};
int array3[]; // Error 1: No size specified
int a=0;
for (a=0; a<5; ++a) // Error 2: indexing past the end of the arrays
{
if (array1[a]<array2[a])
{
array3[a]=array1[a]
}; // Error 3: Misplaced semicolon #1
else if(array1[a]>=array2[a]) // Bug opportunity: unnecessary if
{
array3[a]=array2[a]
}; // Error 4: Misplaced semicolon #2
printf("%d", array3[a]) // Error 5: Missing semicolon
}
return=0 // Errors 6/7: '=' and no ';'
}
C 编译器不关心空格,但 C 程序员关心,这就是原因。在狭小的空间内塞满陈述会使捕捉此类重要细节变得更加困难。