Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2009, 15:32   #1
LoRD_ОЛЕДЖАН
Пользователь
 
Регистрация: 09.07.2009
Сообщений: 24
По умолчанию Задачи на С++

Помогите пожайлуста с решением этих задач
задача 1
составить программу которая совершает ввод двох целых чисел и символа арифметической операции (+, -, /, *), на экран выводятся само выражение и результат в зависимости от знака.

задача 2
для заданого натуральново числа подсчитать суму ево цыфр
Я бы изменил этот мир, но Бог не дает исходников
LoRD_ОЛЕДЖАН вне форума Ответить с цитированием
Старый 19.10.2009, 17:24   #2
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Первая совсем простая =)
Вторую можно через строки, но мне неожиданно в голову пришёл прикольный способ =)
Вот:
Код:
	int n=23405;
	int len, i, res=0;

	for (len=1; (n / len) >0; len*=10);
	for (i=len; i >1; i/=10,res+=n/i, n-=(n/i)*i);
	cout << res << endl;
	cin.get();
	return 0;
TwiX вне форума Ответить с цитированием
Старый 19.10.2009, 17:50   #3
LoRD_ОЛЕДЖАН
Пользователь
 
Регистрация: 09.07.2009
Сообщений: 24
По умолчанию

Пасиб огромное плюсик тебе, а можеш в кратце описать как работает эта прога?
Я бы изменил этот мир, но Бог не дает исходников
LoRD_ОЛЕДЖАН вне форума Ответить с цитированием
Старый 19.10.2009, 18:26   #4
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

for (len=1; (n / len) >0; len*=10); - тут просто ищем длину числа ( в формате 10000 - четырёх-значное)

for (i=len; i >1; i/=10,res+=n/i, n-=(n/i)*i); - тут даже не знаю как объяснить xD
Допустим i=1000. К следующему шагу:
-i/=10 - делим само себя на десять (будет 100)
-res+=n/i - res-это сума цифр. К нему прибавляем целую часть от деления, т.е. res+=2345/1000 ~ res=res+2345/1000=res+2
-n-=(n/i)*i - избавляемся от прочитанного разряда. Т.е. n=n-(n/i)*i=2345-(2345/1000)*1000=2345-(2)*1000=345

Со строками я думаю более понятней и примитивней =)
TwiX вне форума Ответить с цитированием
Старый 19.10.2009, 18:35   #5
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Или можно так:

Код:
#include "stdafx.h"
#include <iostream>

using namespace std;


int main()
{
	int x=0,s=0;

	cout << "Vvedite chislo: ";
	cin >> x;

	while (x > 0)
		{
			s+=x%10;
			x/=10;
		}

	cout << "Summa: " << s << "\n";

	return 0;
}
profi вне форума Ответить с цитированием
Старый 19.10.2009, 18:41   #6
LoRD_ОЛЕДЖАН
Пользователь
 
Регистрация: 09.07.2009
Сообщений: 24
По умолчанию

Пасиб ребята огромное, а что с первой задачей? Помогите пож решить.
Я бы изменил этот мир, но Бог не дает исходников
LoRD_ОЛЕДЖАН вне форума Ответить с цитированием
Старый 19.10.2009, 18:45   #7
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

А что сам никак?

Код:
#include "stdafx.h"
#include <iostream>

using namespace std;


int main()
{
	float a=0,b=0,result;
	char ch;

	cout << "Vvedite 1-oe chislo: ";
	cin >> a;

	cout << "Vvedite 2-oe chislo: ";
	cin >> b;

	cout << "Vvedite znak: ";
	cin >> ch;

	switch(ch)
		{
			case '+': result=a+b; break;
			case '-': result=a-b; break;
			case '*': result=a*b; break;
			case '/': result=a/b; break;

	default:
		{
			cout << "Error!!!";
			cin.get();
			return 0;
		}
	}

	cout << "Resultat: " << result << "\n";

	return 0;
}
profi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи Cpluser Общие вопросы C/C++ 7 21.09.2009 19:37
3 задачи на C++ TheWanderer Фриланс 3 24.02.2009 23:55
4 задачи на С++ marsius Фриланс 2 19.04.2008 22:14
Задачи vitalik007 Помощь студентам 1 13.10.2007 23:09
2 Задачи Stan Помощь студентам 4 02.06.2007 19:47