开发者社区> 问答> 正文

C语言从键盘输入10个数,使用冒泡法对这10个数进行排序。要求使用指针实现。

初学指针 对指针完全迷茫啊!大神帮我改改这个程序,自己写的!有详细的注释最好!

展开
收起
知与谁同 2018-07-20 20:35:23 6986 0
2 条回答
写回答
取消 提交回答
  • 伺候化工厂
    2019-07-17 22:49:51
    赞同 展开评论 打赏
  • #include "stdio.h"
    void main()
    {
    int a[10];
    printf("Input 10 numbers!");
    printf("\n");
    //数组放入10个数
    for(int i=0; i<10; i++)
    {
    scanf("%d",&a[i]);
    }
    printf("The result:");

    for(i=9; i>0; i--)//冒泡算法排序
    {
    for(int j=0; j<i; j++)
    {
    if(a[j] > a[j+1])
    {
    int temp = a[j];
    a[j] = a[j+1];
    a[j+1] = temp;
    }
    }
    }
    //把结果打印出来。
    for(i=0; i<10; i++)
    {
    printf("%5d",a[i]);
    }
    printf("\n");
    }

    -------------------------

    想输入多少个数据都可以自己定义,如果不需要,把n改为10就可以了
    #include <stdio.h>
    #include <stdlib.h>

    void main()
    {
    int i,j,t,n,a[100];
    int *p;
    printf("请输入n=:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    p=a;
    for(i=0;i<n;i++)
    { /* 冒泡法排序 */
    for(j=i;j<n;j++)
    {
    if(*(p+i)<*(p+j))
    {
    t=*(p+i); /* 交换a[i]和a[j] */
    *(p+i)=*(p+j);
    *(p+j)=t;
    }
    }
    }
    printf("排序后为:\n");
    for(i=0;i<n;i++)
    printf("%5d",a[i]);
    printf("\n");
    system("pause");
    }

    2019-07-17 22:49:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载