需要帮助解决数组问题

时间:2018-11-18 09:44:48

标签: c arrays cycle

任务:计算间隔[e,f]上函数y = ax'2 + bx + c的25个值,将它们保存在数组Y中,并找到最小值和最大值在这个数组中。

#include <stdio.h>
#include <math.h>

int main() 
{
    float Y[25];
    int i;
    int x=3,a,b,c;
    double y = a*pow(x,2)+b*x+c;

        printf("a = ", b);
        scanf("%d", &a);

        printf("b = ", a);
        scanf("%d", &b);

        printf("c = ", c);
        scanf("%d", &c);



    for(i=0;i<25;i++)
    {
     printf("%f",y); //output results, not needed
     x++;
    }


    system("pause");
}

问题:

  • 不能理解如何在此处使用“间隔[e,f]”
  • 不能理解如何使用C库将值保存到数组中
  • 不能理解如何编写/制作一个循环,该循环可以找到 最小值和最大值
  • 最后,我不知道我到底该怎么做才能解决任务

3 个答案:

答案 0 :(得分:1)

您必须首先向用户询问a, b, c的值或初始化这些变量,并询问e, f的间隔值或初始化那些变量。

现在,您必须计算double interval= (f - e)/25.0,以便有间隔。

然后,您必须具有一个循环for (int i=0, double x=e; i<25; i++, x += interval)并计算该函数的每个值。您可以选择将结果存储在数组中(在顶部声明一个)或直接打印它们。

答案 1 :(得分:0)

问题:

  • 不能在这里理解如何使用“间隔[e,f]”

(f-e)/ 25(间隔步长)

  • 不能理解如何使用C库将值保存到数组中

您需要使用某种形式的循环遍历数组,并在每个间隔步长保存计算结果。像这样:

for(int i = 0; i < SIZE; i++) 
// SIZE in this case 25, so you traverse from 0-24 since arrays start 0
  • 不能理解如何编写/制作一个循环,该循环将找到最小值和最大值

对于这两种情况:

以某种形式的循环遍历数组并检查每个项目,例如(再次)是这样的:for(int i = 0; i < SIZE; i++)

至少:

  1. 使用数组的第一个元素初始化双精度值(键)
  2. 遍历数组,搜索比初始键值的元素。
  3. 如果位置i处的数组小于键,请保存key = array[i];

最大:

  1. 用0初始化一个双精度值(键);
  2. 遍历数组,搜索比初始键值更大的元素。
  3. 如果您在位置i处的数组大于键,则保存key = array[i];

最后,不知道我到底该怎么做才能解决任务

  1. 初始化变量(您自己或通过用户输入)
  2. 创建一个函数,用于计算间隔中每一步的a*x^2 + b*x + c次。
  3. 为min和max创建一个函数,该函数循环遍历数组并返回最小/最大值。

就可以了。我不会发布代码(暂时),因为这似乎是我的一项工作,我相信您可以使用@Paul Ogilvie和我提供的信息编写代码。祝你好运

答案 2 :(得分:0)

#include<stdio.h>
#include<math.h>
int main()
{
double y[25];
double x,a,b,c,e,f;
int i,j=0;
printf("Enter a:",&a);
scanf("%lf",&a);
printf("Enter b:",&b);
scanf("%lf",&b);
printf("Enter c:",&c);
scanf("%lf",&c);
printf("Starting Range:",&e);
scanf("%lf",&e);
printf("Ending Range:",&f);
scanf("%lf",&f);
for(i=e;i<=f;i++)
{
    y[j++]=(a*pow(i,2))+(b*i)+c;
}
printf("\nThe Maximum element in the given interval is %lf",y[j-1]);
printf("\nThe Minimum element in the given interval is %lf",y[0]);
}

祝你好运!