#include
main()
{
int a[10],i,max,maxp,min,minp,t;
printf("请输入数组");
for(i=0;i<10;i++)//是10不是1
scanf("%d",&a[i]);//这里丢了个括号
max=min=a[0];
maxp=minp=0;
for(i=1;i<10;i++)
{
if(a[i]>max)
{
max=a[i];
maxp=i;
}
if(a[i] { min=a[i]; minp=i; } }//for循环应到这为止 if(minp!=0)//注意要加这个条件 防止最小值是第一个时交换 出错 { t=a[0]; a[0]=a[maxp]; a[maxp]=t; t=a[9]; a[9]=a[minp]; a[minp]=t; } else { t=a[0]; a[0]=a[maxp]; a[maxp]=t; t=a[9]; a[9]=a[maxp]; a[maxp]=t; } for(i=0;i<10;i++) { if(i!=4) printf("%8d",a[i]); else printf("%8d\n",a[i]); } printf("\n"); } 没问题了 已改正 可能出错的情况都测试了 这样就可以同时找最大值最小值了
*min=a[n];a[n]=k;
*max=a[0];a[0]=j;
n=7,但数组的下标为0-6,出现了下标越界。
#include
int main(void)
printf("请输入数组:");
a[0]=a[maxp];
a[maxp]=t;
printf("输出:\n");
}
数组中的元素
数组中的所有元素都具有相同类型。数组中的元素存储在一个连续性的内存块中,并通过索引来访问(这一点也和结构和类中的字段不同,它们通过名称来访问)。数组元素并非只能是基元数据类型,还可以是结构、枚举或类。
以上内容参考:百度百科-数组
你的实现有问题,大小值位置必须分开找,找完之后交换,再找
#include
int main(void)
{
int a[10],i,max,maxp,min,minp,t;
printf("请输入数组:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
minp=0;
for(i=1;i<10;i++)
{
if(a[i] minp=i;
}
t=a[9];
a[9]=a[minp];
a[minp]=t;
maxp=0;
for(i=1;i<10;i++)
{
if(a[i]>a[maxp])
maxp=i;
}
t=a[0];
a[0]=a[maxp];
a[maxp]=t;
printf("输出:\n");
for(i=0;i<10;i++)
{
printf("%8d",a[i]);
if((i+1)%5==0)
printf("\n");
}
return 0;
}