2301_80094760 2023-12-05 11:45 采纳率: 50%
浏览 9
已结题

关于#c语言#的问题:按由小到大的顺序输出我的代码如下#include <stdio.h>(相关搜索:c语言指针)

题目:输入3个整数,按由小到大的顺序输出
我的代码如下




#include<stdio.h>
#include<stdlib.h>
void mmax(int *po,int n)
{
    int temp,*i;
    for(i=po;i<(po+n);i++){
        if(*i>*(i+1)){
            temp=*i;
            *i=*(i+1);
            *(i+1)=*i;
        }
    }
}
int main()
{
    int i,a[3],*p=a;
    printf("请输入三个整数:");
    for(i=0;i<3;i++){
        scanf_s("%d",p++);
    }
    p=a;
    mmax(p,3);
    for(i=0;i<3;i++){
        printf("%d ",*p);
    }
    system("pause");
    return 0;
}

求解答错误在哪,指针真让人头痛

  • 写回答

2条回答 默认 最新

  • 柯本 2023-12-05 11:54
    关注

    你的mmax(...)这个不是排序,是求3个数的最大值

    #include <stdio.h>
    void sort(int *po, int n) //这个才是排序
    {
      int i, j, k, temp;
      for (i = 0; i < n - 1; i++)
        {
          k = i;
          for (j = i + 1; j < n; j++)
            {
              if (*(po + k) > *(po + j))
                k = j;
            }
          if (k != i)
            {
              temp = *(po + i);
              *(po + i) = *(po + k);
              *(po + k) = temp;
            }
        }
    }
    int main()
    {
      int i, a[3], *p = a;
      printf("请输入三个整数:");
      for (i = 0; i < 3; i++)
        {
          scanf("%d", p++); 
        }
      p = a;
      sort(p, 3); //调用排序
      p = a;      //要重新赋
      for (i = 0; i < 3; i++)
        {
          printf("%d ", *p++); //要p++
        }
      //  system("pause");
      return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月14日
  • 已采纳回答 12月6日
  • 创建了问题 12月5日

悬赏问题

  • ¥15 cocos的js代码调用wx.createUseInfoButton问题!
  • ¥15 关于自相关函数法和周期图法实现对随机信号的功率谱估计的matlab程序运行的问题,请各位专家解答!
  • ¥15 Python程序,深度学习,有偿私
  • ¥15 扫描枪扫条形码出现问题
  • ¥35 poi合并多个word成一个新word,原word中横版没了.
  • ¥15 【火车头采集器】搜狐娱乐这种列表页网址,怎么采集?
  • ¥15 求MCSCANX 帮助
  • ¥15 机器学习训练相关模型
  • ¥15 Todesk 远程写代码 anaconda jupyter python3
  • ¥15 我的R语言提示去除连锁不平衡时clump_data报错,图片以下所示,卡了好几天了,苦恼不知道如何解决,有人帮我看看怎么解决吗?