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++;
}
答案 0 :(得分:1)
i
在第二次循环中没有变化。为什么不使用另一个for
循环?
答案 1 :(得分:0)
根据你的代码你可以得到电压。
要查找当前您需要使用ohms law。
R(欧姆)= V(伏特)/ A(安培)
响应您的示例功能
决定是按电阻调用一次,还是为阵列调用一次。
如果是每个数组,那么参数需要改变。
如果是每个项目,则需要更改功能代码。
答案 2 :(得分:0)
一些指示:
}
匹配的{
结束。因此,每次拨打count
时,您的rv
变量都是新计数器,设置为0
。但这可能或多或少是你想要做的,除了...... return
,您的功能退出。您return
的值cur[0]
,但永远不会有机会继续使用其他电阻。以下是一些想法:
以下是您可能希望模仿和充实的部分代码: - )
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);
}