Блог IT для Windows

Все про Windows, программное обеспечение, информационную безопасность, программирование

Суммирование с проверкой

E-mail Печать PDF
(7 голоса, среднее 5.00 из 5)

Составить программу, которая проверяла бы, не приводит суммирование двух целых чисел А и В к переполнению (результату большему чем 32767). Если будет переполнение, то сообщить об этом, иначе вывести сумму этих чисел.

Решение 1 (написано на Borland C++ v 3.1):

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <iostream.h>
void main ()
{
int a,b,c;
printf ("\nThe Program of the checking the summation two integers.\nIf result will more than 32767, 
will be a report on error\n");
printf ("\nWill enter the number  1 and press Enter,\n will then number 2 and press Enter\n");
scanf("%d%d",&a,&b);
c=a+b;
if (a,b,c <= 32767)
{
c=a+b;
printf ("\n  %d+%d",a,b);
printf ("\n  %d",c);
}
else
printf ("\aThe Error! The Result of the adding brings about overflow!\n");
getch();
}

Решение 2 (написано на Microsoft Visual Studio C++ v.6, вывод в консоли русским и разноцветным текстом):

#include <windows.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream.h>
void main ()
{
int a,b,c;
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
char name[128];
CharToOem("Проверка суммирования двух целых чисел",name); //Заголовок в активном окне
char ls[512]="Программу написал:\n \n";
CharToOem(ls,ls);
cout<<ls<<endl;
SetConsoleTextAttribute(hOut,FOREGROUND_INTENSITY | FOREGROUND_GREEN); //Вывод зелёным цветом
char start[512]="Программа проверки суммирования двух целых чисел";
CharToOem(start,start);
cout<<start<<endl;
SetConsoleTextAttribute(hOut,FOREGROUND_GREEN | FOREGROUND_INTENSITY | FOREGROUND_BLUE);
char enter[512]="Пожалуйста, введите число №1 и нажмите Enter,\n затем введите число №2 и нажмите 
Enter\n";
CharToOem(enter,enter);
cout<<enter<<endl;
SetConsoleTitle(name);//Дополнения к заголовку
PCONSOLE_SCREEN_BUFFER_INFO bu=(PCONSOLE_SCREEN_BUFFER_INFO)malloc(sizeof(PCONSOLE_SCREEN_BUFFER_INFO)); SetConsoleTextAttribute(hOut,FOREGROUND_GREEN | FOREGROUND_INTENSITY | FOREGROUND_RED);//Вывод желтым цветом цветом
scanf("%d%d",&a,&b);
c=a+b;
if (a,b,c <= 32767)
{
c=a+b;
printf ("\n  %d+%d",a,b);
printf ("\n  %d",c);}
else
{
SetConsoleTextAttribute(hOut,FOREGROUND_INTENSITY | FOREGROUND_RED); //Вывод красным цветом
char enter1[512]="\aОшибка! Результат сложения приводит к переполнению!\n";
CharToOem(enter1,enter1);
cout<<enter1<<endl;
}
getch();
}

 

Добавить комментарий


Защитный код
Обновить

Праздники и история IT

Кто на сайте

Сейчас 14 гостей онлайн

Статистика

Яндекс.Метрика

Экспорт RSS

feed-image RSS

Поиск по сайту

Голосования

Какой операционной системой вы пользуетесь
 
Каким антивирусом вы пользуетесь
 

Мы в Яндекс.Дзен

Блог IT

Мы Вконтакте


Форум программистов и сисадминов Киберфорум