这个是题目:
这个是我写的错误代码:
%3d是右对齐,左对齐是%-3d
if(p[min]<p[i])
min = i;
得这么写,你都写错了
指针和数组在这里是一样的,所以如果写成*p和p[0]是一样的,不能写成 *p[0]
====
把 swap函数内所有*号都删除
输出函数中printf语句中的*号删除
输出的时候,%3d后面把空格去掉
修改如下图所示:
输入保证最小值和最大值唯一没有得到保证
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]);
}
}