您将如何使用函数计算电阻阵列的电流和电压?

时间:2011-12-06 03:15:17

标签: c arrays

int main()
{

    int res[10];
    double vol[10];
    int i;
    int n;


    for (i = 0; i < 10; i++)
    {
        printf("Enter R and V for resistor %d: ", i+1);
        n = scanf("%d %lf", res[i], vol[i]);
    }

如何编写一个函数,该函数重复使用用户输入的电阻和电压值,这些函数存储在数组中。

然后从main函数调用main之外的函数来计算数组中每个电阻元素的CURRENT AND VOLTAGE。

我试过这个功能..

int rv (int i, int *res, double *vol) {

int count = 0;
int n;
while (count < 10) {

  for(i = 0; i < 10; i++) {
    cur[i] = (vol[i]/res[i]);
    return cur[i]
    }
    count++;
 }

3 个答案:

答案 0 :(得分:1)

i在第二次循环中没有变化。为什么不使用另一个for循环?

答案 1 :(得分:0)

根据你的代码你可以得到电压。

要查找当前您需要使用ohms law

  

R(欧姆)= V(伏特)/ A(安培)


响应您的示例功能

决定是按电阻调用一次,还是为阵列调用一次。

如果是每个数组,那么参数需要改变。

如果是每个项目,则需要更改功能代码。

答案 2 :(得分:0)

一些指示:

  • 在函数内部定义的变量,在该函数的持续时间内仅“实时”。通常,只要定义了变量,它就会在定义之前与}匹配的{结束。因此,每次拨打count时,您的rv变量都是新计数器,设置为0。但这可能或多或少是你想要做的,除了......
  • 一旦return,您的功能退出。您return的值cur[0],但永远不会有机会继续使用其他电阻。

以下是一些想法:

  • 具有计算单个电阻器的R值(电阻?)的功能。
  • 创建一个循环,重复调用该函数并找到它们的(总和?)。

以下是您可能希望模仿和充实的部分代码: - )

 double resistance_of (int res, double vol) {
    return res / vol;
 }

 /* I dunno the math you would actually want to do. */
 double average_of_resistance (int num_resistors, int* res, double* vol) {
    int i = 0;
    double sum = 0;
    while (i < num_resistors) { /* could also use for(;;) here */
         sum = sum + resistance_of (res[i], vol[i]);
         ++i;
    }
    return sum / num_resistors;
 }

 int main (int param_count, char** param) {
    int how_many = 0;
    int res[20];
    double vol[20];
    while (how_many < 1 || how_many > 20) { 
        printf ("\nHow many resistors? ");
        scanf ("%d", how_many);
    }
    for (int i = 0; i < how_many; ++i) {
        printf("\nenter R and V for resistor # %d: ", i);
        scanf ("%d %lf", res[i], vol[i]);
    }
    printf ("\n OK, the average is %f", average_of (how_many, res, vol));
    exit (EXIT_SUCCESS);
 }