一切困难都能打倒我 2022-11-15 19:11 采纳率: 92.9%
浏览 207
已结题

C语言指针练习程序求纠错

用指针实现,输入6个整数,把最小数与第1个数交换,最大数与最后1个数交换,其它数据不动。输入保证最大值和最小值唯一。请编写3个函数:(1)输入6个数;(2)进行处理函数;(2)输出6个数,每个数占3个宽度,左对齐。

运行无结果
求程序纠错

#include <stdio.h>
void inputdata(int *p);
void swapdata(int *p);
void printdata(int *p);
int main(){
    int a[6];  
    inputdata(a);
    swapdata(a);
    printdata(a);
    return 0;
}

void inputdata(int *p)
{  int i=0;
   for(i=0;i<6;i++)
       scanf("%d ",*p++);
}
void swapdata(int *p)
{  int i,x,d,min=*p,max=*(p+5),k;
   for(i=0;i<6;i++)
   {
   if(min>*(p+i))
      {min=*(p+i);x=i;}
   if(max<*(p+i))
      { max=*(p+i);d=i;}
   }
   k=*p;*p=min;*(p+x)=k;
   k=*(p+5);*(p+5)=max;*(p+d)=k;
}
void printdata(int *p)
{  int i;
  for(i=0;i<6;i++)
      printf("%3d",*p++);
}

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2022-11-15 23:56
    关注

    改动处见注释,供参考:

    #include <stdio.h>
    void inputdata(int *p);
    void swapdata(int  *p);
    void printdata(int *p);
    int main(){
        int a[6];
        inputdata(a);
        swapdata(a);
        printdata(a);
        return 0;
    }
    void inputdata(int *p)
    {
       int i=0;
       for(i=0;i<6;i++)
           scanf("%d", p++);
           //scanf("%d ",*p++);
    }
    void swapdata(int *p)
    {
       int i,x=0,d=0,min=*p,max=*p,k;//修改
       //int i,x,d,min=*p,max=*(p+5),k;
       for(i=0;i<6;i++)
       {
           if(min>*(p+i))
              {min=*(p+i);x=i;}
           if(max<*(p+i))
              {max=*(p+i);d=i;}
       }
       k=*p;*p=min;*(p+x)=k;
       if(d == 0) d = x;          //修改
       k=*(p+5);*(p+5)=max;*(p+d)=k;
    }
    void printdata(int *p)
    {
       int i;
       for(i=0;i<6;i++)
          printf("%3d",*p++);
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月16日
  • 已采纳回答 11月16日
  • 修改了问题 11月15日
  • 创建了问题 11月15日

悬赏问题

  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示