Где-то так
[code h=200]
/*
Написать функцию, которая вычисляет сопротивление цепи,
где резисторы могут быть соединены как параллельно,
так и последовательно. Количество резисторов может быть любым.
Параметрами функции должны быть:
тип электрической цепи (параллельное/последовательное соединение),
количество резисторов.
Реализовать вариант программы с обычной функцией.
*/
#include <stdio.h>
#include <windows.h>
//функция расчета сопротивления группы резисторов
//параметры: количество и тип соединения (0/1 - парал/послед)
//возвращает вещественное число - сопротивление всей цепи
float res(int cnt, int type)
{
float r; //сопротивление текущего резистора
float res; //сопротивление всей цепи
int i; //индекс
for(i=0,res=0; i<cnt; i++)
{
do
{
printf("Введите сопротивление резистора (>0): ");
scanf("%g", &r); //вводим с проверкой на корректность
}while(r<=0);
if (type == 0)
res += 1/r; //параллельное соединение
else
res += r; //последовательное соединение
}
if (type == 0)
res = 1/res; //для паралл соединения находим обратную величину
return res;
}
int main()
{
int iCount, iType;
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
do
{
printf("Введите число резисторов (>1): ");
scanf("%d", &iCount); //вводим с проверкой на корректность
}while(iCount<2);
do
{
printf("Введите тип соединения, параллельное(0)/последовательное(1): ");
scanf("%d", &iType); //вводим с проверкой на корректность
}while(iType!=0 && iType!=1);
printf("R = %g Ом\n", res(iCount, iType)); //считаем и выводим результат
system("pause");
return 0;
}
[/code]
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен