阿Cxi 发表于 2021-1-16 23:37:26

关于函数中使用数组的问题

#include <stdio.h>
int reverse(int a[],int b)
{
        int i,temp;
        for(i=0;i<10;i++)
        {
                temp=a;
                a=a;
                a=temp;
        }
}
int main()
{
        int i,a = {3,7,9,11,0,6,7,5,4,2};
        for(i=0;i<10;i++);
        {
                printf("%d ",a);
        }
        reverse(a,10);
        printf("\n");
        for(i=0;i<10;i++)
        {
                printf("%d ",a);
        }
       
}
不知道为啥无法将数组颠倒输出,求大神指点呀多谢

阿Cxi 发表于 2021-1-16 23:40:04

检查出来了一处错误,函数中for(i=0;i<5;i++)
不过还是不行

心驰神往 发表于 2021-1-17 08:26:46

lz问题解决了吗

云枭女 发表于 2021-1-17 08:49:16

#include <stdio.h>
int reverse(int x[],int b)
{
      int i,temp;
      for(i=0;i<b/2;i++)
      {
                temp=x;
                x=x;
                x=temp;
      }
}
int main()
{
      int i,a = {3,7,9,11,0,6,7,5,4,2};
      for(i=0;i<10;i++)
      {
                printf("%d ",a);
      }
                printf("\n");
      reverse(a,10);
      
      for(i=0;i<10;i++)
      {
                printf("%d ",a);
      }
      
}

云枭女 发表于 2021-1-17 08:50:32

定义函数的时候有点问题,还有就是“int main"的里面的那个”for“后面没有分号

chxchxkkk 发表于 2021-1-17 09:11:30

不知是想要排序还是数组元素倒序输出,如果仅仅是倒序输出,那么不用交换元素位置
for(i=9;i>=0;i--)
    printf("%d ", a);
printf("\n");
这样就可以倒序输出了。
如果排序的话,子函数里少了判断比较大小的语句。

李京 发表于 2021-1-17 11:28:32


#include <stdio.h>
int reverse(int a[],int b)//可以把下面循环条件改成i<b/2
{
      int i,temp;
      for(i=0;i<10;i++)//这里相当于颠倒了两次就变成原来的了,把10改成5就行了
      {
                temp=a;
                a=a;
                a=temp;
      }
}
int main()
{
      int i,a = {3,7,9,11,0,6,7,5,4,2};
      for(i=0;i<10;i++)//;//不能有分号
      {
            printf("%d ",a);
      }
      reverse(a,10);
      printf("\n");
      for(i=0;i<10;i++)
      {
                printf("%d ",a);
      }
      
}
页: [1]
查看完整版本: 关于函数中使用数组的问题