虽然但是我也不知道啊 2021-12-23 13:43 采纳率: 100%
浏览 47
已结题

一道c语言的问题,不知道错哪了,求指正

题目:4、编程题:定义函数void sort(int a[],int n),用选择法对数组a中的元素升序排列。自定义main函数,在主函数中输入n个整数并在其中调用sort函数。
输入输出示例
Input n:6
Input array of 6 integers:1 5 -9 2 4 -6
After sorted the array is:-9 -6 1 2 4 5

问题代码如下:

  1. #include<stdio.h>
  2. int sort(int a[],int n){
  3. int t,i,j,min;
  4. for(i=0;i<n-1;i++){
  5. min=a[i];
  6. for(j=1;j<=n;i++){
  7. if(min>a[j]){
  8. t=min;
  9. min=a[j];
  10. a[j]=t;
  11. }
  12. }
  13. }
  14. return a[i],min;
  15. }
  16. int main()
  17. {
  18. int n,i,j,min;
  19. scanf("%d",&n);
  20. int a[n],*p;
  21. for(i=0;i<n;i++){
  22. scanf("%d",&a[i]);
  23. }
  24. for(i=0;i<n;i++){
  25. *p=a[i];
  26. printf("%d",sort(*p,n));
  27. }
  28. return 0;
  29. }

无法输出结果

我尝试修改其中的一部分,

  1. for (i = 0; i < n; i++)
  2. {
  3. // *p = a[i];
  4. sort(a[i], n);
  5. printf("%d",a[i]);
  6. }
  7. return 0;

依旧无法正常输出,
请告诉我怎么修改它,和错误之处

展开全部

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-12-23 13:46
    关注

    怎么可以把sort放到循环里呢???
    修改如下:

    1. #include<stdio.h>
    2. void sort(int a[],int n){
    3. int t,i,j;
    4. for(i=0;i<n-1;i++){
    5. for(j=i+1;j<n;j++){
    6. if(a[i]>a[j]){
    7. t=a[i];
    8. a[i]=a[j];
    9. a[j]=t;
    10. }
    11. }
    12. }
    13. }
    14. int main()
    15. {
    16. int n,i;
    17. scanf("%d",&n);
    18. int a[n],*p;
    19. for(i=0;i<n;i++){
    20. scanf("%d",&a[i]);
    21. }
    22. p = a;
    23. sort(p,n);
    24. for(i=0;i<n;i++){
    25. printf("%d ",a[i]);
    26. }
    27. return 0;
    28. }

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

    还有啥问题呢,这个改完后依旧这样

    回复
    CSDN专家-link 回复 虽然但是我也不知道啊 2021-12-23 13:59

    这样还不对就没道理了

    #include<stdio.h>
    void sort(int a[],int n){
        int t,i,j;
        for(i=0;i<n-1;i++){
           for(j=i+1;j<n;j++){
            if(a[i]>a[j]){
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
        }
    }
    int main()
    {   
        int n,i,a[1000],*p;
        scanf("%d",&n);
        for(i=0;i<n;i++){
            scanf("%d",&a[i]);
        }
        p = a;
        sort(p,n);
        for(i=0;i<n;i++){
            printf("%d ",a[i]);
        }
        return 0;
    }
     
    
    

    回复

    sort为啥不能丢循环里,老师没说过这个问题

    回复
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月23日
  • 已采纳回答 12月23日
  • 创建了问题 12月23日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部