Сложить два введенных числа и вывести результат
Что в коде не так? Результат не тот, что нужен. И объясните, чем отличаются целое десятичное от целого десятичного со знаком. Я так понял, что число 1 — это целое, 1.1 — целое десятичное.
Пожалуйста, не нужно давать мне советы типа:»Поищите в google». Уже искал, нашёл правила использования printf и scanf функций, но мне нужен конкретный пример. Пожалуйста, если есть таковой, приведите его, заранее спасибо!
Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Первая программа на С: сложить два числа и вывести результат
Здравствуйте. Только начал изучать этот язык C. Среда Dev-C++ Вот моя первая программа.
Сложить два числа и вывести результат в ячейку
Как сложить два числа в vba exel так, чтобы результат выводился в отдельную ячейку?
Сложить два введенных числа
Задание: с помощью интерфейса, дано А и В, вывести результат С = А + В. Начало есть, как дальше не.
3070 / 1408 / 425
Регистрация: 19.01.2009
Сообщений: 3,864
Сообщение было отмечено Памирыч как решение
Решение
1 2 3 4 5 6 7 8 9 10 11
#include #include int main() { int a, b; scanf("%u", &a); scanf("%u", &b); printf("%u\n", a + b); _getch(); return 0; }
382 / 330 / 159
Регистрация: 06.12.2010
Сообщений: 894
Сообщение было отмечено Памирыч как решение
Решение
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#include #include int main() { int a; int b; int c; scanf("%d", &a); scanf("%d", &b); c=a+b; printf("%d\n", c); _getch(); return 0; }
3070 / 1408 / 425
Регистрация: 19.01.2009
Сообщений: 3,864
в строке 8 вы складываете числа a и b, но они будут считаны лишь в строках 9 и 10. т.е. получаете вы складываете неинициализированые переменные
Как сложить два числа в Ассемблере
Складывать числа в ассемблере не так уж и сложно. В подавляющем большинстве случаев это делается с помощью команды ADD. Но в любой задаче, даже самой простой, могут встретиться неожиданности, которые не может предусмотреть новичок в силу того, что не имеет достаточного опыта и знаний. Поэтому, несмотря на то, что в описании инструкции ADD всё достаточно понятно, я решил написать небольшую статью с примерами.
Итак, первое, что нам надо помнить — это размер числа. Если мы складываем два числа, то размер результата может быть больше, чем размер регистра, в который помещается результат.
Второе — мы можем складывать и отрицательные числа. Следовательно, и результат может быть отрицательным.
И да — сложение положительного и отрицательного чисел — это, по сути, вычитание одного числа из другого. Хотя для вычитания в ассемблере есть команда SUB.
Команда ADD существует с незапамятных времён — ещё с процессора 8086. Поэтому она поддерживается и всеми последующими процессорами Интел и совместимыми.
Простейший пример использования:
MOV AL, 3 ADD AL, 2 ; AL = 3 + 2 = 5
Здесь мы сначала записали число 3 в регистр AL, а затем применили команду ADD для сложения числа в AL с числом 2. Результат записывается в нашем случае в AL. И там после выполнения команды будет число 5.
Но складывать можно не только значение в регистре с числом. Но и, например, значения двух регистров:
MOV BX, 7 MOV AX, 2 ADD AX, BX ; AX = 7 + 2 = 9
Также вместо регистров можно использовать память:
MOV [110h], 3 ADD [110h], 2 ; По адресу [110h] теперь хранится 5 MOV AL, 1 ADD AL, [110h] ; AL = 6
При работе с памятью, конечно, надо понимать, что находится по данному адресу и к каким последствиям может привести прямое обращение к памяти и изменение её содержимого. В данном примере на это мы внимания не обращаем. Это просто пример.
Складывать можно не только константы, регистры и память, но и переменные:
ADD BL, MyVar ADD MyVar, 3
Не знаю, во всех ли ассемблерах это будет работать. Но в эмуляторе точно работает. Причём оба варианта. То есть можно записывать результат как в регистр, так и в переменную.
Есть ещё такая тема, как сложение с переносом. Но в этой статье рассматривать её не будет. Больше сведений об этом можно найти здесь.
И есть ещё такая вещь, как BCD-значения. Инструкции для работы с такими значениями: AAA, AAD, AAS, AAM.
На этом пока всё. Подключайтесь к группе Основы программирования в Телеграм, или к другим каналам (ссылки ниже), чтобы ничего не пропустить.
Сложить 2 числа и вывести на экран
РЕБЯТА, СРОЧНО, ЗАВТРА СДАВАТЬ. 11!один!
В общем вот задача, с++ не знаю, вообще ничего не знаю:
Написать программу, запрашивающая на ввод 2 числа. Сложить эти числа и вывести на консоль.
Помогите, пожалуйста!
Вот моя попытка!
1 2 3 4 5 6 7 8 9 10 11 12 13 14
///////////////////////////////////////////////////////////////////////////////////////// templatetypename. A, typename B> void sumTwoNumbers(A a, B b) { return std::accumulate(a, a + b, &b); } ///////////////////////////////////////////////////////////////////////////////////////// int main(double argc, std::vector argv) auto a; auto b; std::cout >> a >> b; std::cout( a^b, b
Добавлено через 10 минут
UP.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Сложить два числа вывести на экран
Такая проблема , складываю 11 и 12 на экран выводит только одно число 3 text segment.
Как сложить 2 числа и вывести их на экран?
Я складываю 2 числа и пытаюсь вывести их на экран в текстовое поле, пишет только — NaN. Как вывести.
Ввести два числа с клавиатуры, сложить их и вывести на экран
Как ввести два числа с клавиатуры, сложить их и вывести на экран? Почему в конце программа.
Сложить числа и вывести сумму на экран в двоичной и десятичной системах счисления
Ввести две строки, состоящие только из нулей и единиц. Считая их изображениями двоичных чисел.
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
1 2 3 4 5 6 7 8 9 10
#include using namespace std; int main() { double a; double b; cin >> a >> b; cout (a+b) endl; return 0; }
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
GbaLog-, тут вроде шаблоны не нужны, заменить тип auto на double и должно работать. еще вы cin и cout перепутали. вот так попробуйте
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#include using namespace std; double sumTwoNumbers(double a, double b) { return a + b; } int main() { double a, b; std::cin >> a >> b; std::cout sumTwoNumbers(a, b); }
4816 / 2276 / 287
Регистрация: 01.03.2013
Сообщений: 5,943
Записей в блоге: 27
Решения неполные. Никто не утверждал, что числа — вещественные в формате с плавающей запятой.
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
_Ivana, можно вводить и без плавающей точки
4816 / 2276 / 287
Регистрация: 01.03.2013
Сообщений: 5,943
Записей в блоге: 27
FateOri, ну комплексные в своего кота введи
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
Сообщение от _Ivana
Решения неполные. Никто не утверждал, что числа — вещественные в формате с плавающей запятой.
Но никто и не утверждал обратного
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
_Ivana, комплексные так вводить не получится, хотя теоретически вы можете ввести все что угодно нужно только правила для сложения задать
4816 / 2276 / 287
Регистрация: 01.03.2013
Сообщений: 5,943
Записей в блоге: 27
DevAlone, но вы же понимаете, что задачу надо решать в максимально общем виде, который допускает постановка? Что не оговорено — то нельзя безосновательно предполагать. Это общее правило. Иначе можно написать ответ 0 — потому что никто не говорил, что числа не нули
Добавлено через 34 секунды
FateOri, про это и был мой пост выше, что ваше решение неполное
Любитель чаепитий
3741 / 1798 / 565
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
DevAlone, FateOri, Надо сделать через шаблоны, которые с переменным числом параметров, их должно 2 передаваться. Мне так сказали!
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
Сообщение от _Ivana
FateOri, про это и был мой пост выше, что ваше решение неполное
_Ivana, почему не полное? оно ведь полностью отвечает поставленной задаче
если автору вопроса нужно комплексное, гиперкомплексное или вообще не число то вроде надо об этом написать в тексте вопроса
Сообщение от _Ivana
Иначе можно написать ответ 0 — потому что никто не говорил, что числа не нули
нельзя, в условии написано что программа должна запросить два числа
4816 / 2276 / 287
Регистрация: 01.03.2013
Сообщений: 5,943
Записей в блоге: 27
Сообщение от FateOri
должна запросить два числа
Сообщение от FateOri
оно ведь полностью отвечает поставленной задаче
неверно, это ваши досужие домыслы и искусственные ограничения
ЗЫ там ТС выше про шаблоны еще уточнил
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
Сообщение от _Ivana
DevAlone, но вы же понимаете, что задачу надо решать в максимально общем виде, который допускает постановка? Что не оговорено — то нельзя безосновательно предполагать. Это общее правило. Иначе можно написать ответ 0 — потому что никто не говорил, что числа не нули
А, ну тогда можно реализовать класс, от него наследовать классы для типов Bool, Int, Double, Complex и т.д. перегрузить операторы сложения, добавить к этому всему фабрику чисел(ну не создавать же их конструктором, кто вообще так делает?) и отдельный класс «сумматор», который будет проверять допустимость сложения и складывать совместимые типы, а если они не совместимы, выбрасывать исключение, ах да, исключения, их, естественно надо будет описать в виде иерархии классов исключений при сложении чисел, ну типа SumOfBoolAndComplexException
Требуется сложить два целых числа А и В
Требуется написать программу на с#. Дается входные данные Во входном файле записано два неотрицательных целых числа, не превышающих 10^100, по одному в каждой строке. Выходные данные В единственную строку выходного файла нужно вывести одно целое число — сумму чисел А и В, без лидирующих нулей. Вот что у меня получилось:)
class Program < static void Main(string[] args) < int A, B, i, S; Console.WriteLine("Введите числа A и B: "); A = int.Parse(Console.ReadLine()); B = int.Parse(Console.ReadLine()); S = 0; for (i = A; i = "); > Console.ReadKey(); > >
Отслеживать
задан 29 мая 2021 в 19:31
3 1 1 бронзовый знак
В задании написано сумму двух чисел, а код что считает? И 10^100 не влезет в Int.
29 мая 2021 в 19:41
И я на 97% уверен, что это получилось не у тебя, а у кого-то другого, и ты даже не знаешь, что делает этот код.
29 мая 2021 в 19:50
«Вот что у меня получилось» — ничего не получилось.
– user176262
29 мая 2021 в 19:52
А как это решить? Я просто не шарю я бублик.
29 мая 2021 в 19:54
@RiAXxx «числа, не превышающих 10^100» — намек на то, что числа в int не поместятся. Складывать их надо «в столбик».
– user176262
29 мая 2021 в 19:57
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Поскольку задача учебная или конкурсная, дам лишь подсказку.
На C# с числами произвольной длины можно работать при помощи структуры BigInteger. В частности, эта структура умеет распарсить себя из строкового представления, а также поддерживает стандартные арифметические операции наподобие сложения.
Но раз задание учебное, я бы порекомендовал не пользоваться готовым решением (это всё же некоторая разновидность читерства), а реализовать самостоятельно поразрядное сложение, а также парсинг и обратную конвертацию в строку. Например, вы можете воспользоваться очевидным (хотя и малоэффективным) представлением числа в виде списка цифр.
Задание подсказывает, что важно не забыть интересный крайний случай: когда количество разрядов суммы меньше или больше количества разрядов слагаемых.
Отслеживать
ответ дан 30 мая 2021 в 11:52
206k 28 28 золотых знаков 291 291 серебряный знак 526 526 бронзовых знаков
Во всех тестирующих системах, в которые я пытался скормить решение на шарпе, BigInteger доступен не был. Только на джаве. Впрочем, может сейчас ситуация поменялась.
30 мая 2021 в 12:23
@Qwertiy: Тю, это же глупо, зачем блокировать штатную функциональность?
30 мая 2021 в 13:02
Это скорее всего просто из-за того, что этот тип в сборке, которая не подключена по умолчанию (System.Runtime.Numerics.dll)
30 мая 2021 в 18:03
@АндрейNOP: Я думал об этом варианте, но вроде ж в .NET Framework отдельной сборки не было?
30 мая 2021 в 18:11
Была — System.Numerics.dll, по вашей же ссылке можно посмотреть, переключив слева версию фреймворка. BigInteger всегда подключался отдельно