从键盘上输入n个数保存到数组中,找出这n个数的最小值和它的位置,然后把它和数组最前面的元素对调位置.
我写了一个这样的程序——
#include<stdio.h>
#include<malloc.h>
int main()
{
int i,n,j,*pi,temp,tag;
printf("请输入数的个数: ");
scanf("%d",&n);
pi=(int*)malloc(n*sizeof(int));
if(pi!=NULL)
{
printf("请输入%d个数\n",n);
for(i=0;i<n;++i)
scanf("%d",pi+i);//获得输入
printf("\n");
temp=*pi;
for(j=0;j<n;j++)
{
if(*(pi+j)<temp)
{
temp=*(pi+j);
tag=j;
}
}
*(pi+j-1)=*pi;
*pi=temp;
for(i=0;i<n;++i)
printf("%d ",*(pi+i));
printf("\n");
printf("最小的数字的位置是在第%d个",tag+1);
return 0;
}
else
{
printf("申请空间失败!\n");
return 21;
}
}
可是

该怎么改正啊??求你们帮帮我~~
我写了一个这样的程序——
#include<stdio.h>
#include<malloc.h>
int main()
{
int i,n,j,*pi,temp,tag;
printf("请输入数的个数: ");
scanf("%d",&n);
pi=(int*)malloc(n*sizeof(int));
if(pi!=NULL)
{
printf("请输入%d个数\n",n);
for(i=0;i<n;++i)
scanf("%d",pi+i);//获得输入
printf("\n");
temp=*pi;
for(j=0;j<n;j++)
{
if(*(pi+j)<temp)
{
temp=*(pi+j);
tag=j;
}
}
*(pi+j-1)=*pi;
*pi=temp;
for(i=0;i<n;++i)
printf("%d ",*(pi+i));
printf("\n");
printf("最小的数字的位置是在第%d个",tag+1);
return 0;
}
else
{
printf("申请空间失败!\n");
return 21;
}
}
可是


该怎么改正啊??求你们帮帮我~~