Функция
printf(строка форматов, список выводимых переменных)
выполняет форматированный вывод переменных, указанных в списке, в соответствии со строкой форматов. Функция
scanf(строка форматов,список адресов вводимых переменных)
выполняет ввод переменных, адреса которых указанны в списке, в соответствии со строкой форматов.
Строка форматов содержит символы, которые будут выводиться на экран или запрашиваться с клавиатуры и так называемые спецификации.
Спецификации это строки, которые начинаются символом % и выполняют управление форматированием:
% флаг ширина.точность модификатор тип
Параметры флаг, ширина, точность и модификатор в спецификациях могут отсутствовать.
Первой строкой программы, в которой будут применяться функции ввода-вывода языка С, должна быть директива
#include <stdio.h>
Заголовочный файл stdio.h содержит описание функций ввода-вывода.
ЗАДАЧА 1. Зная a, b, c – длины сторон треугольника, вычислить площадь S и периметр P этого треугольника.
Входные данные: a, b, c.
Выходные данные: S, P.
Для вычисления площади применим формулу Герона: ,
где r – полупериметр.
//ЗАДАЧА 1. Вариант первый.
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c,S,r; //Описание переменных.
//Вывод на экран символов a=.
printf("a=");
//Запись в переменную а значениия введенного
//с клавиатуры.
scanf("%f",&a);
printf("b="); scanf("%f",&b);
printf("c="); scanf("%f",&c);
r=(a+b+c)/2; //Вычисление полупериметра.
S=sqrt(r*(r-a)*(r-b)*(r-c)); //Вычисление площади.
//Вывод символов S=, значения S и символа табуляции.
//Спецификация %5.2f означает, что будет
//выведено вещественное число, под которое
//отводится 5 знаков, причем 2 из них после точки.
printf("S=%5.2f \t",S);
//Вывод символов p=, значения выражения 2*r
//и символа окончания строки \n.
printf("p=%5.2f \n", 2*r);
return 0;
}
Результат работы программы представлен на рис. 1.
Рис. 1. Результат работы программы к задаче 1.
//ЗАДАЧА 2.1. Вариант второй
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c,S,r;
//Вывод на экран строки символов.
printf("Vvedite a,b,c \n");
//Ввод значений списком.
scanf("%f%f%f", &a,&b,&c);
r=(a+b+c)/2;
S=sqrt(r*(r-a)*(r-b)*(r-c));
//Вывод результатов списком.
printf("S=%5.2f \t p=%5.2f \n", S,2*r);
return 0;
}
Результат работы программы представлен на рис. 2.
Рис. 2. Результат работы программы к задаче 1.