Блог IT для Windows

Всё для Windows, софт, исходники

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

E-mail Печать PDF
(0 голоса, среднее 0 из 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(); }
 

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


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

Экспорт RSS

feed-image RSS

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

Кто на сайте

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

Статистика

Яндекс.Метрика
Анализ веб сайтов

Поиск


Голосования

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

Наш опрос

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