实验6-1 输入n个整数,将它们存入数组a中。输出最大值和它所对应的下标

             输入n个整数,将它们存入数组a中。输出最大值和它所对应的下标

#include<stdio.h>
int main(void)
{
    int n,i,a[10],index;

    printf("Enter n:");
    scanf("%d",&n);
    printf("Enter %d integers:",n);
    //输出n个要求的数
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    //找最大值 a[index]
    index=0;
    for(i=1;i<n;i++)
        if(a[i]>a[index])
            index=i;
    printf("max is%d\tsub is %d\n",a[index],index);
    return 0;
}

 

转载于:https://www.cnblogs.com/chengruiqiking/p/3391746.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是Python代码实现: n = int(input("请输入整数n:")) a = [] for i in range(n): a.append(int(input("请输入第{}个整数:".format(i+1)))) max_index = 0 for i in range(n): if a[i] > a[max_index]: max_index = i print("最大值为{},对应下标为{}".format(a[max_index], max_index)) a[max_index], a[-1] = a[-1], a[max_index] print("交换后的n个数为:", end="") for i in range(n): print(a[i], end=" ") ### 回答2: 此题实际上考察的是对于数组的操作。我们首先需要输入一个整数n,并根据n的值来定义数组a的长度,将n个整数存入a。在输入的过程,可以使用循环语句for来进行。 下一步,我们需要找出输入的n个整数最大值以及它所对应下标。这一步可以使用一个for循环和一个if语句来实现。我们可以先将最大值设为数组的第一个数a[0],然后从a[1]开始遍历整个数组,用if语句判断是否有比a[0]更大的数,并更新最大值以及它所对应下标。 接下来,我们需要将最大值和数组的最后一个数a[n-1]进行交换。这一步直接用一个临时变量来进行,将a[n-1]的值存入该变量,将最大值a[max_index]的值存入a[n-1],最后将临时变量存储的a[n-1]的值存入a[max_index]即可。 最后,我们需要输出交换后的n个数。同样是使用一个for循环语句来实现。这一步比较简单,根据数组下标依次输出n个数即可。 总的来说,此题实际上考察的是对于数组的操作,包括数组的定义、数组的遍历、数组元素的比较以及元素的交换等。对于初学者来说,这是一个不错的练习题。 ### 回答3: 本题需要用到数组的基本操作以及求最大值的方法。 1. 首先,输入一个整数n,表示要输入n个整数。 2. 声明一个数组a,用于存放输入的n个整数。使用循环结构,依次输入n个整数。 3. 定义一个变量max,用于记录数组a最大值,初值可以设为a[0]。再定义一个变量max_index,用于记录最大值下标,初值可以设为0。 4. 使用循环结构,遍历数组a,查找最大值。若a[i]>max,则更新max的值为a[i],同时更新max_index的值为i。 5. 输出最大值和它对应下标max_index。 6. 将最大值与最后一个数交换,即交换a[max_index]和a[n-1]的值。 7. 使用循环结构,输出交换后的n个数。 下面是具体的代码实现: ``` #include <stdio.h> int main() { int n, a[10], max, max_index, i, temp; printf("请输入整数个数n(1<n≤10):"); scanf("%d", &n); printf("请输入%d个整数:", n); for(i=0; i<n; i++) { scanf("%d", &a[i]); } max = a[0]; max_index = 0; for(i=1; i<n; i++) { if(a[i]>max) { max = a[i]; max_index = i; } } printf("数组最大值为%d,对应下标为%d\n", max, max_index); temp = a[max_index]; a[max_index] = a[n-1]; a[n-1] = temp; printf("交换后的%d个整数为:", n); for(i=0; i<n; i++) { printf("%d ", a[i]); } return 0; } ``` 例如,输入n为5,依次输入5个整数2、4、1、5、3,则程序输出结果为: 请输入整数个数n(1<n≤10):5 请输入5个整数:2 4 1 5 3 数组最大值为5,对应下标为3 交换后的5个整数为:2 4 1 3 5 说明:数组最大值为5,对应下标为3,即第4个数。将第4个数5与最后一个数3交换,得到的新数组为2、4、1、3、5。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值