这是以相反顺序打印整数数组的相当简单的问题.虽然每当我尝试打印时,它最终都会显示垃圾值.以下是我的计划.
#include <stdio.h>
#include <conio.h>
int main()
{
int temp = { '\0' };
int num[9];
int i;
int j = 8;
printf("Enter 8 numbers\n");
for (i = 0; i < 8; i++)
{
scanf_s("%d", &num[i], 1);
}
for (i = 0; i <= j; i++, j--)
{
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
printf("\nThe numbers in reverse are\n");
for (i = 0; i <=8; i++)
{
printf("%d\n", num[i]);
}
_getch();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
假设我输入的数字从1到8,它会反向打印数字,但它打印的第一个值是垃圾值.我知道我可以使用和If语句来对抗这种情况,但有没有办法在不使用if的情况下解决这个问题?
你在这里犯了两个错误:
j为7初始化以解决此问题.<或者!=不要<=避免一个一个错误.你的第一个循环正确,但最后一个循环被打破.此外,您可能希望将数组的大小减小到8,因为第9个元素未使用.