使用c语言编写程序:有n个整数,把它们存放到一个一维数组中(下标从0开始),通过指向数组的指针变量的移动遍历整个数组,找出数组的最大数和它的下标并输出。输入数据有多组,每组占一行,第一个数n(10≤n≤20)表示该组测试数据的个数,后面跟有n个整数。若n=0,表示输入结束,不需处理。对于每组输入,输出单独占一行,输出包括最大数及其下标,中间用空格分隔。
时间: 2024-02-24 17:54:41 浏览: 37
以下是使用 C 语言编写的程序,实现在给定的一维数组中找出最大数及其下标的功能:
```c
#include <stdio.h>
int main()
{
int n;
while (scanf("%d", &n) != EOF && n != 0) { // 多组输入
int a[n]; // 声明一维数组 a,长度为 n
int *p = a; // 声明指向数组 a 的指针变量 p,指向 a 的第一个元素
for (int i = 0; i < n; i++) { // 输入 n 个整数
scanf("%d", p + i);
}
int max = a[0]; // 假设第一个元素为最大值
int index = 0; // 最大值的下标
for (int i = 1; i < n; i++) { // 遍历数组
if (*(p + i) > max) { // 如果当前元素大于最大值
max = *(p + i); // 更新最大值
index = i; // 更新最大值的下标
}
}
printf("%d %d\n", max, index); // 输出最大值及其下标
}
return 0;
}
```
输入格式为:
```
n1 a1[0] a1[1] ... a1[n-1]
n2 a2[0] a2[1] ... a2[n-1]
...
```
其中,n 表示数组的长度,a 表示数组的元素。每组测试数据占一行。当 n 为 0 时,表示输入结束,程序退出。输出格式为:
```
max index
max index
...
```
其中,max 表示最大值,index 表示最大值的下标。每个最大值及其下标单独占一行。