N7FAA52318 2022-01-13 21:37 采纳率: 62.5%
浏览 1289
已结题

C语言-输入N个整数,用冒泡排序算法将它们按升序排序后输出

问题遇到的现象和发生背景

使用函数的方法,输入N个整数,用冒泡排序算法将它们按升序排序后输出

我的代码
#include <stdio.h>
#define N 10

void sort (int *p, int n);
int main(void)
{
    int a[N],*pa ;
    int i;
    for(pa=a;pa<a+N;pa++)
        scanf("%d",pa);
    sort(a,N);
    for(i=0;i<10;i++)
          printf("%d ",a[i]);
    printf("\n");
    return 0;
    }

void sort (int *p, int n)
{
    int i,j,tmp;
        for(j=0;j<n-1;j++)
    {
        for(i=0;i<n-j-1;i++)
        {
            if(*(p+i)>*(p+i+1))
            {
            tmp=*(p+i);
            *(p+i+1)=*(p+i);
            *(p+i)=tmp;

            }
        }
    }
}


运行结果及报错内容

运行无法输出正确的答案

我想要达到的结果

请指正代码哪里错误了,谢谢

  • 写回答

2条回答 默认 最新

  • 墨色染夕 若水三千 2022-01-13 22:11
    关注

    scanf("%d",pa);
    pa可是地址你怎么输入,还有下面的互换也错了,已改好,望采纳

    #include <stdio.h>
    #define N 10
    
    void sort(int *p, int n);
    int main(void)
    {
        int a[N], *pa;
        int i;
        for (pa = a; pa<a + N; pa++)
            scanf("%d",&(*pa));
        sort(a, N);
        for (i = 0; i<N; i++)
            printf("%d ", a[i]);
        printf("\n");
        return 0;
    }
    
    void sort(int *p, int n)
    {
        int i, j, tmp;
        for (j = 0; j<n - 1; j++)
        {
            for (i = 0; i<n - j - 1; i++)
            {
                if (*(p + i)>*(p + i + 1))
                {
                    tmp = *(p + i);
                    
                    *(p + i) = *(p + i + 1);
                    *(p + i + 1) = tmp;
    
                }
            }
        }
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月21日
  • 已采纳回答 1月13日
  • 创建了问题 1月13日

悬赏问题

  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!