Ввод с консоли

Последнее обновление: 17.01.2024
Упражнение 1

Напишите программу, в которой с консоли вводятся значения для двух переменных типа int и одной переменной типа double. Для ввода данных используйте функцию scanf.

Ответ
#include <stdio.h>
 
int main(void)
{
	int count;
    double price;
	printf("Input count:");
	scanf("%d", &count);

    
	printf("Input price:");
	scanf("%lf", &price);
	
	printf("Price: %.2lf \tCount: %d \n", price, count);
	return 0;
}
Упражнение 2

Измените предыдущую программу таким образом, чтобы для считывания данных использовалась не функция scanf(), а функции fgets(), которая считывает строку в буфер, и функцию sscanf(), которая извлекает данные из буфера в переменные.

Ответ
#include <stdio.h>
 
int main(void)
{
    char buffer[50]; // буфер для считывания
	int count;
    double price;
	printf("Input count and price:");
    if (fgets(buffer, 50, stdin) != NULL)
    {
        // считываем данные из буфера в переменные
        sscanf(buffer, "%d %lf", &count, &price);
	    printf("Price: %.2lf \tCount: %d \n", price, count);
    }
    else
    {
        printf("Fatal Error!\n");
    }
	return 0;
}
Упражнение 3

Дана следующая программа:

#include <stdio.h>
 
int main(void)
{
	int age;
	char name[20];
	// вводим возраст
	printf("Your age: ");
	scanf("%d", &age);
	// вводим имя
	printf("Your name: ");
	scanf("%20s", name);
	
	printf("Name: %s \t Age = %d",name,  age);
	return 0;
}

Эта программа имеет проблему - при вводе имени в переменную name помещается только первая часть имени, которая идет до пробела:

Your age: 34
Your name: Tom Smith
Name: Tom        Age = 34

Исправьте программу таким образом, чтобы она могла принимать в качестве имени строки, разделенные пробелом, например, "Tom Smith".

Ответ
#include <stdio.h>

int main(void)
{
	int age;
	char name[20];
	// вводим возраст
	printf("Your age: ");
	scanf("%d", &age);
	// вводим имя
	printf("Your name: ");
	scanf("%20[^\n]", name);
	
	printf("Name: %s \t Age = %d",name,  age);
	return 0;
}
Упражнение 4

Напишите программу, в которой с консоли вводятся высота и ширина прямоугольника, а выводится его площадь.

Ответ
#include <stdio.h>
 
int main(void)
{
    float width,height,area;
    printf("Enter the width: ");
    scanf("%f",&width);
    printf("Enter the height: ");
    scanf("%f",&height);
    area=width*height;
    printf("Area of rectangle: %f\n",area);
    return 0;
}
Упражнение 5

В одном метре 3.281 фут. Напишите программу, в которой с консоли вводится размер в футах, а выводится размер в метрах.

Ответ
#include <stdio.h>
 
int main(void)
{
    float length, result;
    printf("Enter the length in pounds: "); // вводим длину в футах
    scanf("%f",&length);
    result = length / 3.281;
    printf("Length in meters: %f\n",result);
    return 0;
}
Дополнительные материалы
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850