示例: 找到最大的元素
#include <stdio.h> #include <stdlib.h> int main() { int n; double *data; printf("Enter the total number of elements: "); scanf("%d", &n); // Allocating memory for n elements data = (double *)calloc(n, sizeof(double)); if (data == null) { printf("Error!!! memory not allocated."); exit(0); } // Storing numbers entered by the user. for (int i = 0; i < n; ++i) { printf("Enter number%d: ", i + 1); scanf("%lf", data + i); } // Finding the largest number for (int i = 1; i < n; ++i) { if (*data < *(data + i)) { *data = *(data + i); } } printf("Largest number = %.2lf", *data); free(data); return 0; }
输出
Enter the total number of elements: 5 Enter number1: 3.4 Enter number2: 2.4 Enter number3:-5 Enter number4: 24.2 Enter number5: 6.7 Largest number = 24.20
说明
在程序中,我们要求用户输入存储在变量
n
中的元素总数。然后,我们为
n 个
double
值分配了内存。
// Allocating memory for n double values
data = (double *)calloc(n, sizeof(double));
然后,我们使用
for
循环从用户那里获取
n 条数据。
// Storing elements for (int i = 0; i < n; ++i) { printf("Enter Number%d: ", i + 1); scanf("%lf", data + i); }
最后,我们使用另一个
for
循环来计算最大数。
// Computing the largest number for (int i = 1; i < n; ++i) { if (*data < *(data + i)) *data = *(data + i); } }
注意: 除了 calloc(),也可以使用 malloc() 函数解决这个问题。