C语言输入n(n<=1000)个整数,找出其中最大的数和此数的下标

1个回答
展开全部
摘要 请参考下面的C语言代码:#include #define MAX_COUNT 1000int main(){ int n, max, index; int a[MAX_COUNT]; printf("请输入n的值(n <= 1000):"); scanf("%d", &n); // 读取n个整数 printf("请输入%d个整数:", n); for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } // 查找最大值和它的下标 max = a[0]; // 假设第一个数最大 index = 0; // 记录下标 for (int i = 1; i n; i++) { if (a[i] > max) { max = a[i]; index = i; } } // 输出结果 printf("最大的数是 %d,它的下标是 %d\n", max, index); return 0;}
咨询记录 · 回答于2023-05-03
C语言输入n(n<=1000)个整数,找出其中最大的数和此数的下标
请参考下面的C语言代码:#include #define MAX_COUNT 1000int main(){ int n, max, index; int a[MAX_COUNT]; printf("请输入n的值(n <= 1000):"); scanf("%d", &n); // 读取n个整数 printf("请输入%d个整数:", n); for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } // 查找最大值和它的下标 max = a[0]; // 假设第一个数最大 index = 0; // 记录下标 for (int i = 1; i n; i++) { if (a[i] > max) { max = a[i]; index = i; } } // 输出结果 printf("最大的数是 %d,它的下标是 %d\n", max, index); return 0;}
借助一个整型数组 a[MAX_COUNT] 来存储输入的n个整数,并使用循环和条件语句,找出数组中最大的数和它的下标。首先,我们需要通过输入读取n个整数,并存储到数组 a[] 中。接着,我们假设第一个数是最大值,并从第二个数开始遍历数组,用条件语句 if (a[i] > max) 检查是否有比当前最大值更大的数,如果有,则将最大值和下标记录下来。最终,我们输出最大的数和它的下标。需要注意的是,由于题目中没有说明,当存在多个最大值时,此程序只会输出第一个发现的最大值和其下标。如果要输出所有最大值和它们的下标,可以将记录下标的变量改为一个数组,并在遍历数组时进行处理。
下面是根据题目要求编写的程序,具体见注释:#include using namespace std;int max(int a[], int n, int *p) { int maxIndex = 0; // 最大值下标的初始值为0 for(int i = 1; i n; i++) { if(a[i] > a[maxIndex]) { maxIndex = i; } } *p = maxIndex; // 将最大值下标通过指针形参返回给主调函数 return a[maxIndex]; // 返回数组中的最大值}int main() { int n; cin >> n; // 输入数组的元素个数 int a[n]; for(int i = 0; i n; i++) { cin >> a[i]; // 输入每个元素的值 } int maxIndex; // 定义变量maxIndex来存储最大值的下标 int maxVal = max(a, n, &maxIndex); // 调用max函数,获取最大值和下标 cout << "maxVal = " << maxVal << ", maxIndex = " << maxIndex << endl; // 输出最大值和下标 return 0;}
在上述代码中,max函数接收三个参数:a表示数组,n表示数组长度,p表示存储最大值下标的指针。该函数通过遍历数组获取最大值和其下标,并将下标通过指针保存,并将最大值返回给主调函数。在main函数中,首先输入数组的元素个数和每个元素的值,然后调用max函数获取最大值和下标,并将结果输出。
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

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

说明

0/200

提交
取消