我已要求用户输入多个值来计算平均值,但我还要计算使用输入值的渐变。如何命名这些值以便我可以再次使用它们?谢谢。
这是我到目前为止所做的:
#include <stdio.h>
int main () {
int n, i;
float num[1000], total=0, mean;
printf("Enter the amount of x-values:");
scanf("%d", &n);
while (n <= 0 || n > 1000) {
printf("Print error. The number should in range of 0 to 1000.\n");
printf("Please try to enter the amount again: ");
scanf("%d", &n);
}
for (i = 0; i < n; ++i) {
printf("%d. Input x-value:", i+1);
scanf("%f", &num[i]);
total += num[i];
}
mean=total/n;
printf("The mean of all the x-values entered is %.2f to 2 decimal places", mean);
{
float num[1000], total=0, mean;
printf("Enter the amount of y-values:");
scanf("%d", &n);
while (n <= 0 || n > 1000) {
printf("Print error. The number should in range of 0 to 1000.\n");
printf("Please try to enter the amount again: ");
scanf("%d",&n);
}
for (i = 0; i < n; ++i) {
printf("%d. Input y-value:", i+1);
scanf("%f", &num[i]);
total += num[i];
}
mean = total / n;
printf("The mean of all the y-values entered is %.2f to 2 decimal places", mean);
return 0;
}
}
答案 0 :(得分:0)
命名变量真的取决于你,但是`int gradient [NUM_ELEMENTS];似乎合适。它是一个数组,如果它的目的是帮助从一系列数字中找到梯度,它似乎也是合适的。
步骤可以是:
1)使用printf向用户询问值,在值之间指定空格或逗号。您还可以指定值的限制。示例printf("enter 5 numbers separated by commas\n:");
2)使用scanf或类似方法将标准输入(终端)的值读入数组:scanf("%d,%d,%d,%d,%d", &gradient[0], &gradient[1], &gradient[2], &gradient[3], &gradient[4]);
3)使用数组一个计算梯度的函数。
简单的例子:
(其中梯度计算,错误检查,边界检查等都留给你)
int get_gradient(int a[5]);
int main(void) {
int gradient[5];
int iGradient=0;
printf("enter 5 numbers separated by commas");
scanf("%d,%d,%d,%d,%d", &gradient[0], &gradient[1], &gradient[2], &gradient[3], &gradient[4]);
iGradient = get_gradient(gradient);
return 0;
}
int get_gradient(int a[5])
{
return [do computation here using array a];
}
编辑:
上面的示例仅在您知道编译时元素的数量时才有效。它使用在堆栈上创建的int数组。如果您不知道在运行时需要多大的数组,例如,如果用户输入确定了大小,则需要在运行时确定数组大小。一种选择是创建堆所需的变量。 ( read about stack and heap here )以下使用与上述更简单版本不同的一些技术来获取用户输入,包括我称为get_int()的函数,该函数将scanf()
与{结合使用} {1}}。这是一个例子:
strtol()