C 需要帮助吗

C 需要帮助吗,c,C,我需要的是一个用户输入10个由空格分隔的整数,然后反过来打印出来。这就是我所拥有的,但它不起作用 #include <stdio.h> int main(int argc, char *argv[]) { int a[ 9 ], i, j, t ; printf("Enter ten integers seperated by spaces:\n"); for(i = 0; i < 10; i++) { scanf("%d", &a[i]); } j = i

我需要的是一个用户输入10个由空格分隔的整数,然后反过来打印出来。这就是我所拥有的,但它不起作用

#include <stdio.h>

int main(int argc, char *argv[])
{
int a[ 9 ], i, j, t ; 
printf("Enter ten integers seperated by spaces:\n");

for(i = 0; i < 10; i++)
{
  scanf("%d", &a[i]);
}

j = i - 1;
i = 0;
while (i < j)
{
  t = a[i];
  a[i] = a[j];
  a[j] = t;
  i++;
  j--;
}

printf("\nReverse array is:\n");
for(i = 0; i < 10; i++);
{
printf("%d ", a[i]);
}

return 0;

}
#包括
int main(int argc,char*argv[])
{
int a[9],i,j,t;
printf(“输入以空格分隔的十个整数:\n”);
对于(i=0;i<10;i++)
{
scanf(“%d”、&a[i]);
}
j=i-1;
i=0;
而(i
我注意到两个问题

  • 您的数组
    a
    ,只有9个元素。您应该使其足够大以包含所有十个元素

  • 循环的第二个
    后面有一个分号:

    对于(i=0;i<10;i++); {

  • 此分号将导致循环的行为如下:

    for(i = 0; i < 10; i++) { }
    {
    
    (i=0;i<10;i++)的
    
    {
    

    这不是您想要的。

    您已经定义了数组
    a[9]
    。 数组的大小实际上是10,所以这应该像
    a[10]


    请记住,定义数组时,必须指定大小而不是最后一个索引。

    当前程序的输出是什么?@Bill如果需要输入10个数字,则必须声明数组有10个元素。如果要以相反的顺序输出数组,则无需反转数组本身。另外要考虑的一点是:您不必执行ally需要反转数组中的元素,以便按相反顺序打印数字。