关于#c语言#的问题:指针访问数组

这个是题目:

img

这个是我写的错误代码:

img

img


请问是哪些地方错误了啊?谢谢

%3d是右对齐,左对齐是%-3d
if(p[min]<p[i])
  min = i;
得这么写,你都写错了
指针和数组在这里是一样的,所以如果写成*p和p[0]是一样的,不能写成 *p[0]
====
把 swap函数内所有*号都删除
输出函数中printf语句中的*号删除

输出的时候,%3d后面把空格去掉

img

修改如下图所示:

img

img

输入保证最小值和最大值唯一没有得到保证

printf("%3d ",*p[i]);

改成

printf("%-3d",*p[i]);
#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; 
    for(i=0;i<6;i++)
    {
        scanf("%d",&p[i]);
    }
}
void swapdata(int *p)
{
    int min=0,max=0,i,b,t;
    for(i=0;i<6;i++)
    {
        if(p[i]<p[min])
        {
            min=i;
        }
    }
    b=p[0];
    p[0]=p[min];
    p[min]=b;
    for(i=0;i<6;i++)
    {
        if(p[i]>p[max])
        {
            max=i;
        }
    }
    t=p[max];
    p[max]=p[5];
    p[5]=t;
}
void printdata(int *p)
{
    int i;
    for(i=0;i<6;i++)
    {
        printf("%-3d",p[i]);
    }
}

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632