本文共 824 字,大约阅读时间需要 2 分钟。
为了解决这个问题,我们需要编写一个C程序来读取n个实数,找到其中的最大值及其位置。我们将使用非递归的方法来遍历数组,比较每个元素,找出最大值和它的位置。
这种方法的时间复杂度是O(n),空间复杂度是O(1),非常高效。
#includeusing namespace std;int main() { int n; float a[n]; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%f", &a[i]); } float maxVal = a[0]; int maxPos = 0; for (int i = 1; i < n; i++) { if (a[i] > maxVal) { maxVal = a[i]; maxPos = i; } } printf("%.3f %d\n", maxVal, maxPos); return 0;}
scanf函数读取输入数据,首先读取整数n,然后读取n个实数存储在数组a中。maxVal初始化为数组的第一个元素,位置maxPos初始化为0。printf函数输出最大值保留三位小数及其位置。这种方法简单直接,能够高效地解决问题。
转载地址:http://ubbp.baihongyu.com/