鱼C论坛

 找回密码
 立即注册
查看: 1053|回复: 3

[已解决]数组排序调换输出

[复制链接]
发表于 2023-5-22 20:39:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
int main()
{
        int i,j;
        int a[10]={11,22,33,44,56,67,78,98,93,100};
        int *p=a;
       
        for(i=0,j=9;i<10;i++,j--)
        {
               
                *(p+j)=*(a+i);
        }
        for(i=0;i<10;i++)
        {       
                printf("%d\n",*(p+i));       
        }
        for(i=0;i<10;i++)       
        {       
                printf("%d",*(p+i));       
        }
        return 0;
}
求大佬帮忙求解
最佳答案
2023-5-22 20:41:12
[b]这个程序试图反转一个数组,但是实现有问题。当  i  和  j  同步增减时,你会在数组的前半部分进行交换,然后在后半部分又将它们换回来,所以这个数组并没有被反转。你应该只在  i < j  时交换  a[i]  和  a[j] 。

这是一个正确的实现方法:
#include <stdio.h>
int main()
{
    int i,j;
    int a[10]={11,22,33,44,56,67,78,98,93,100};
    int temp;

    for(i=0,j=9;i<j;i++,j--)
    {
        // 使用临时变量 temp 进行交换
        temp = a[i];
        a[i] = a[j];
        a[j] = temp;
    }
    for(i=0;i<10;i++)
    {
        printf("%d\n", a[i]);
    }
    return 0;
}

在这个新的程序中, i  和  j  从数组的两端开始,并向中心移动,只在  i < j  时交换元素,以确保每对元素只交换一次。[/b]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-22 20:41:12 | 显示全部楼层    本楼为最佳答案   
[b]这个程序试图反转一个数组,但是实现有问题。当  i  和  j  同步增减时,你会在数组的前半部分进行交换,然后在后半部分又将它们换回来,所以这个数组并没有被反转。你应该只在  i < j  时交换  a[i]  和  a[j] 。

这是一个正确的实现方法:
#include <stdio.h>
int main()
{
    int i,j;
    int a[10]={11,22,33,44,56,67,78,98,93,100};
    int temp;

    for(i=0,j=9;i<j;i++,j--)
    {
        // 使用临时变量 temp 进行交换
        temp = a[i];
        a[i] = a[j];
        a[j] = temp;
    }
    for(i=0;i<10;i++)
    {
        printf("%d\n", a[i]);
    }
    return 0;
}

在这个新的程序中, i  和  j  从数组的两端开始,并向中心移动,只在  i < j  时交换元素,以确保每对元素只交换一次。[/b]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-22 20:48:37 | 显示全部楼层
能不能用指针
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-22 20:49:45 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 15:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表