Прокомментировать задачку по строкам - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <conio.h>
#include <math.h>
const int n = 3;
typedef struct
{
int chisl,znam;
}str;
int ravno(float a, float b)
{
if (a==b)
return 1;
}
float max(float a[n])
{
int i;
float maxr;
maxr = a[1];
for(i=1; i<=n; i++)
if(a[i] > maxr)
maxr = a[i];
return maxr;
}
float min(float a[n])
{
int i;
float minr;
minr = a[1];
for(i=1; i<=n; i++)
if(a[i] < minr)
minr = a[i];
return minr;
}
float summa(float a, float b)
{
float c = a + b;
return c;
}
int main()
{
int i;
str mas[n];
float a[n];
for(i=1; i<=n; i++)
{
printf("chisl %d=",i);
scanf("%d",&mas[i].chisl);
printf(" znam %d=",i);
scanf("%d",&mas[i].znam);
printf("\n");
a[i] = (float)mas[i].chisl / mas[i].znam;
}
printf("vivod max chisla\n");
printf("%f\n",max(a));
printf("vivod min chisla\n");
printf("%f\n",min(a));
if(ravno(a[1],a[2]))
printf("chisla 1 i 2 ravny\n");
else
printf("chisla 1 i 2 ne ravny\n");
printf("summa 1-go i 2-go chisla\n");
printf("%f",summa(a[1],a[2]));
getch();
return 0;
}Решение задачи: «Прокомментировать задачку по строкам»
textual
Листинг программы
#include <stdio.h>//подключение библиотек
#include <conio.h>
#include <math.h>
const int n = 3;//определение константы n
typedef struct // объявление структуры str с двумя полями целого типа
{
int chisl,znam;
}str;
int ravno(float a, float b)// описание функции, которая возвращает "1" если переданные ей числа равны
{
if (a==b)
return 1;
}
float max(float a[n])// ф-ия ищет максимальный элемент массива "а" и возвращает его значение
{
int i;
float maxr;
maxr = a[1];
for(i=1; i<=n; i++)
if(a[i] > maxr)
maxr = a[i];
return maxr;
}
float min(float a[n])// ф-ия ищет минимальный элемент массива "а" и возвращает его значение
{
int i;
float minr;
minr = a[1];
for(i=1; i<=n; i++)
if(a[i] < minr)
minr = a[i];
return minr;
}
float summa(float a, float b)// ф-ия возвращает сумму переданных ей чисел
{
float c = a + b;
return c;
}
int main()
{
int i;
str mas[n];
float a[n];
for(i=1; i<=n; i++)// в цикле от 0 до n
{
printf("chisl %d=",i);
scanf("%d",&mas[i].chisl);// считывание целого в поле chisl структуры i из массива структур
printf(" znam %d=",i);
scanf("%d",&mas[i].znam);// считывание целого в поле znam структуры i из массива структур
printf("\n");
a[i] = (float)mas[i].chisl / mas[i].znam;// сохранение в i-том элементы массива "а" значения дроби
}
printf("vivod max chisla\n");// вывод максимального числа
printf("%f\n",max(a));
printf("vivod min chisla\n");// вывод минимального числа
printf("%f\n",min(a));
if(ravno(a[1],a[2]))
printf("chisla 1 i 2 ravny\n");//вывод, если второй и третий элементы массива "а" равны равны(нумерация в массиве с 0)
else
printf("chisla 1 i 2 ne ravny\n");//вывод, если они не равны
printf("summa 1-go i 2-go chisla\n");
printf("%f",summa(a[1],a[2]));//вывод суммы 1-го и 2-го числа
getch();//ожидание нажатия клавиши
return 0;//выход из программы
}
Объяснение кода листинга программы
- В этом коде используются следующие библиотеки:
, , . - Объявлена константа n со значением 3.
- Объявлена структура str с полями chisl и znam типа int.
- Функция ravno(float a, float b) возвращает 1, если a и b равны, и 0 в противном случае.
- Функция max(float a[n]) ищет максимальный элемент массива
аи возвращает его значение. - Функция min(float a[n]) ищет минимальный элемент массива
аи возвращает его значение. - Функция summa(float a, float b) возвращает сумму переданных ей чисел.
- В функции main() объявлены две переменные i типа int и две переменные a и mas типа float.
- В цикле от 0 до n происходит считывание целого числа в поле chisl структуры i из массива структур mas и сохранение в i-том элементе массива
азначения дроби (float)mas[i].chisl / mas[i].znam. - После цикла происходит вывод максимального числа с помощью функции printf() и функции max().
- После цикла происходит вывод минимального числа с помощью функции printf() и функции min().
- Если a[1] и a[2] равны, то выводится сообщение
chisla 1 i 2 ravny, иначе выводится сообщениеchisla 1 i 2 ne ravny. - Выводится сумма 1-го и 2-го числа с помощью функции printf() и функции summa().
- В конце программы вызывается функция getch() для ожидания нажатия клавиши.
- Функция main() возвращает 0, что означает успешный выход из программы.