编写C语言程序,输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

要求(1)数组长度定义为10;(2)输出数组时每个元素占8个宽度,每行5个;#include<stdio.h>main(){inta[10],i,max,maxp,min... 要求(1)数组长度定义为10;
(2)输出数组时每个元素占8个宽度,每行5个;
#include <stdio.h>
main()
{
int a[10],i,max,maxp,min,minp,t;
printf("请输入数组");
for(i=0;i<1;i++)
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)
{
min=a[i];
minp=i;
}
t=a[0];
a[0]=a[maxp];
a[maxp]=t;
t=a[9];
a[9]=a[minp];
a[minp]=t;
请将后面的补充完整,谢谢啦。
展开
 我来答
汐日南莘
2013-05-10 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:45%
帮助的人:7589万
展开全部

#include <stdio.h>

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)

        {

        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");

}


没问题了   已改正

可能出错的情况都测试了   这样就可以同时找最大值最小值了

帐号已注销
2021-06-27 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:167万
展开全部

*min=a[n];a[n]=k;

*max=a[0];a[0]=j;

n=7,但数组的下标为0-6,出现了下标越界。

#include<stdio.h>

int main(void)

printf("请输入数组:");

a[0]=a[maxp];

a[maxp]=t;

printf("输出:\n");

}

数组中的元素

数组中的所有元素都具有相同类型。数组中的元素存储在一个连续性的内存块中,并通过索引来访问(这一点也和结构和类中的字段不同,它们通过名称来访问)。数组元素并非只能是基元数据类型,还可以是结构、枚举或类。

以上内容参考:百度百科-数组

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6fe74e2
2013-05-10 · TA获得超过6593个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:268万
展开全部

你的实现有问题,大小值位置必须分开找,找完之后交换,再找

#include<stdio.h>
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]<a[minp])
   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;
}

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式