Лабораторная работа по Си функции ввода-вывода

Цель работы - изучение функций ввода-вывода и получение навыков организации простейшего ввода - вывода данных.

Лабораторное задание

Составить программу, осуществляющую ввод и вывод исходных данных.
Выполнить ввод и вывод переменных заданных типов:
’A’; ’Меня зовут <фамилия и имя>’;  315, -27;   127.361,  -574.953;   2124.


Описание метода решения задачи

1.Описание константы символьного типа ‘А’
2.Описание массива символов (макс=100), в который будет помещено <фамилия и имя>, его ввод, проверка на наличие пробела и количество символов
3.Описание и ввод положительного и отрицательного целых и проверка на наличие положительного и отрицательного
4.Описание и ввод положительного и отрицательного с плавающей точкой, проверка на налицие цифр после запятой и проверка на наличие положительного и отрицательного
5.Описание и ввод беззнакового целого
6.Вывод всех введенных данных с различными дополнениями

Листинг

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <math.h>
#include <locale.h>
void main()
{
       //Первая часть: Ввод строки
       const char a='A';
       char s[100];
       size_t f;
       unsigned i,k;
       k=0;
       setlocale (LC_ALL, "Russian");//чтобы корректно выводились русские буквы
       do
       {
             printf("Введите имя и фамилию ");
             gets(s);//записываем имя и фамилию в массив s
             f=strlen(s);//считаем колличество символов в строке s
             k = 0;
             if (f<=100)
             {
                    for (i = 0; i < f; i++)
                    {
                           if (s[i]==' ')// ищем пробел между именем и фамилией
                                  k = k + 1;
                    }
             }
       } while ((f<15) || (k==0));
       // Вторая часть: Ввод 2 целых чисел с разными знаками
       int c14,c24;
metka1:;
       printf("Введите 2 числа первое положительное второе отрицательное ");
       scanf("%d %d",&c14,&c24);
       if ((c14>0) && (c24>0))
       {
             printf("Ошибка. Нет отрицательного числа\n");
             goto metka1;
       };
      
       if ((c14<0) && (c24<0))
       {
             printf("Ошибка. Нет положительного числа\n");
             goto metka1;
       };
       //Третья часть: Ввод 2 чисел с плавающей точкой
       double d14,d24;
metka2:;
       printf("Введите 2 числа с плавающей точкой с разными знаками ");
       scanf("%lf %lf",&d14,&d24);
       if ((d14>0) && (d24>0))
       {
             printf("Ошибка. Нет отрицательного числа\n");
             goto metka2;
       };
       if ((d14<0) && (d24<0))
       {
             printf("Ошибка. Нет положительного числа\n");
             goto metka2;
       };
       double x1,x2,y;
       x1=modf(d14,&y);
       x2=modf(d24,&y);
       if ((x1==0) && (x2==0))
       {
             printf("Ошибка. Вы ввели целое число\n");
             goto metka2;
       };
       //Четвертая часть: ВВод целого беззнакового
       unsigned b1;
       printf("Введите беззнаковое число ");
       scanf("%u",&b1);
       // Пятая часть: Вывод конечных данных
       printf("1.%c %d\n", a,a);
       printf("Меня зовут %s, %d\n", s,f);
       printf ("%d %x\n",c14,c14);
       printf("%d %x\n",c24,c24);
       printf("%.3f %.3e\n",d14,d14);
       printf("%.3f %.3e\n",d24,d24);
       printf("%u %o %x\n",b1,b1,b1);
             printf("Вывод с модификаторами- %5d, %5.d, %-5d \n",c14,c14,c14);
       printf("Вывод с модификаторами- %5d, %5.d, %-5d",c24,c24,c24);
       getch();
}

Пояснительный текст к программе

Константа а-символ А
Переменная s-массив символов в котором заложена <фамилия и имя>
Переменная f-опряделяет количество символов в массиве s
Переменные с14,с24-целые числа
Переменные d14,d24-числа с плавающей запятой
Переменная b1-беззнаковое число
Переменные i,k,x1,x2,y-необходимы для промежуточных результатов

Результаты работы программы


Комментариев нет:

Отправить комментарий