Остаток от деления - C (СИ) (77627)
Формулировка задачи:
//---------------------------------------------------------------------------
#include <vcl.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<iostream.h>
//---------------------------------------------------------------------------
float middle (float,float,float);
float ost (float,float,float);
int main(void)
{ float e; float f; float g; float x;
float op; int m; float r; bool xxx; int o; int k;
cout<<"Enter type of numbers dec (1) or fraction (0)\n";
cin>>xxx;
o=xxx;
if( xxx!=0 )
{
cout<<"Enter e,f,g\n";
cin>>e>>f>>g;
op=ost(e,f,g);
k=middle(e,f,g);
cout<<k<<"- middle\n";
cout<<op<<"-%\n";}
else
{ cout<<"Enter e,f,g\n";
cin>>e>>f>>g;
x=middle(e,f,g);
cout<<x<<"- middle\n";
cout<<fmod(ost(e,f,g),3)<<"-%\n";
}
getch();
}Решение задачи: «Остаток от деления»
#include <iostream>
#include <cmath>
using namespace std;
template <class T>
T middle(T a, T b, T c)
{
return (a + b + c)/3;
}
template <class T>
T ostatok(T a, T b, T c)
{
double ipart;
T ost, sum = (a + b + c);
if(static_cast <T> (0.1) == 0)
ost = (static_cast <int> (sum - 3*middle(a,b,c)) ) % 3;
else
ost = static_cast <T> (modf(sum/3,&ipart));
return ost;
}
int main()
{
int iA, iB, iC;
double dA, dB, dC;
cout<<"Enter integers\n";
cout<<"a = ";cin>>iA;
cout<<"b = ";cin>>iB;
cout<<"c = ";cin>>iC;
cout<<"Sr arifm : "<<middle (iA, iB, iC)<<endl;
cout<<"Ostatok : "<<ostatok(iA, iB, iC)<<endl;
cout<<"Enter doubles\n";
cout<<"a = ";cin>>dA;
cout<<"b = ";cin>>dB;
cout<<"c = ";cin>>dC;
cout<<"Sr arifm : "<<middle (dA, dB, dC)<<endl;
cout<<"Ostatok : "<<ostatok(dA, dB, dC)<<endl;
system("pause");
return 0;
}
Объяснение кода листинга программы
В этом коде представлены две функции: middle и ostatok. Функция middle вычисляет среднее значение трех чисел, а функция ostatok вычисляет остаток от деления суммы трех чисел на 3.
В функции ostatok сначала определяется переменная sum, которая содержит сумму трех чисел. Затем проверяется, является ли сумма чисел целым числом. Если да, то в переменную ost записывается остаток от деления sum на 3. В противном случае, используется функция modf для получения дробной части от sum/3, а затем полученное значение приводится к типу T.
В функции main пользователю предлагается ввести три целых числа, а затем три числа с плавающей точкой. После ввода чисел выводятся результаты вычисления среднего значения и остатка от деления на 3 для обоих наборов чисел.