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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2009, 00:38   #1
iKeler
Новичок
Джуниор
 
Регистрация: 13.08.2009
Сообщений: 4
Смущение Здраствуйте.

Здравствуйте, недавно начал изучать Си.
Помогите пожалуйста, с кодом не могу понять в чем проблема:
Код:
void main()
{
	setlocale(LC_ALL, "Russian");
	srand(time(NULL));
	int A[10];
	int Sum[2] = {0,0};
	int Temp[2]= {0,0};
	for (int i = 0;i < 10;++i)
	{
		A[i] = rand()%500;
	}
	for (int j = 0;j < 10;++j)
	{
		if (A[j]%2==0)
		{
			Temp[1] =+  A[j];
			Sum[1] =+ Temp[1];
			cout<<"Четные числа :"<<Sum[1]<<endl;
			cout<<endl;
		}
		else 
		{
			Temp[2] =+ A[j];
			Sum[2] =+ Temp[2];
			cout<<"Нечетные числа :"<<Sum[2]<<endl;
			cout<<endl;
		}
	}
	cout<<"-----------------------------------------------"<<endl;
	cout<<"Четные числа: "<<Sum[1]<<endl;
	cout<<"Нечетные числа: "<<Sum[2]<<endl;
	system("pause");
}
Я не понимаю почему не суммируются числа в Sum[1], и Sum[2].

Последний раз редактировалось MaTBeu; 14.08.2009 в 14:57.
iKeler вне форума Ответить с цитированием
Старый 13.08.2009, 00:53   #2
iKeler
Новичок
Джуниор
 
Регистрация: 13.08.2009
Сообщений: 4
По умолчанию

мне кажется я ошибся разделом.
iKeler вне форума Ответить с цитированием
Старый 13.08.2009, 01:23   #3
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Код:
Temp[2] =+ A[j];
Sum[2] =+ Temp[2];
cout<<"Нечетные числа :"<<Sum[2]<<endl;
Выход за границы массива..

Цитата:
Здравствуйте, недавно начал изучать Си.
А пишешь на С++, Си и С++ - разные языки..
Код:
.......................
		for (int j = 0;j < 10;++j)
		{
			if (A[j]%2==0)
			{
				Temp[0] =+  A[j];
				Sum[0] =+ Temp[0];
				cout<<"Четные числа :"<<Sum[0]<<endl;
				cout<<endl;
			}
			else 
			{
				Temp[1] =+ A[j];
				Sum[1] =+ Temp[1];
				cout<<"Нечетные числа :"<<Sum[1]<<endl;
				cout<<endl;
			}
		}
		cout<<"-----------------------------------------------"<<endl;
		cout<<"Четные числа: "<<Sum[0]<<endl;
		cout<<"Нечетные числа: "<<Sum[1]<<endl;
.......................
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....

Последний раз редактировалось ISergeyN; 13.08.2009 в 01:28.
ISergeyN вне форума Ответить с цитированием
Старый 13.08.2009, 02:24   #4
iKeler
Новичок
Джуниор
 
Регистрация: 13.08.2009
Сообщений: 4
По умолчанию

Цитата:
Сообщение от ISergeyN Посмотреть сообщение
Код:
Temp[2] =+ A[j];
Sum[2] =+ Temp[2];
cout<<"Нечетные числа :"<<Sum[2]<<endl;
Выход за границы массива..


А пишешь на С++, Си и С++ - разные языки..
Код:
.......................
		for (int j = 0;j < 10;++j)
		{
			if (A[j]%2==0)
			{
				Temp[0] =+  A[j];
				Sum[0] =+ Temp[0];
				cout<<"Четные числа :"<<Sum[0]<<endl;
				cout<<endl;
			}
			else 
			{
				Temp[1] =+ A[j];
				Sum[1] =+ Temp[1];
				cout<<"Нечетные числа :"<<Sum[1]<<endl;
				cout<<endl;
			}
		}
		cout<<"-----------------------------------------------"<<endl;
		cout<<"Четные числа: "<<Sum[0]<<endl;
		cout<<"Нечетные числа: "<<Sum[1]<<endl;
.......................
Большое спасибо, я думал что на Си надо бы почитать об этом побольше.
iKeler вне форума Ответить с цитированием
Старый 13.08.2009, 02:28   #5
iKeler
Новичок
Джуниор
 
Регистрация: 13.08.2009
Сообщений: 4
По умолчанию

а вопрос, как под суммировать все нечетные, и четные числа?
iKeler вне форума Ответить с цитированием
Старый 13.08.2009, 08:13   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А пишешь на С++
Пардон, а как ты это определил?

Прощу прощения, если никто не возражает я сделаю мальнокую оптимизацию кода автора:
Код:
//---------------------------------------------------------------------------
#include <iostream.h>
#include <stdlib.h>
//---------------------------------------------------------------------------
void main()
{
	int A[10];
	int Sum[2] = {0,0};
	int Temp[2]= {0,0};
	for (int i = 0;i < 10;++i)
	{
		A[i] = rand()%500;
		Sum[(A[i]%2==0)?0:1]+=A[i];
		cout<<A[i]<<"\t";
	}
	cout<<"-----------------------------------------------"<<endl;
	cout<<"Четные числа: "<<Sum[0]<<endl;
	cout<<"Нечетные числа: "<<Sum[1]<<endl;
	system("pause");
}
На мой взгляд так будет красивее

Цитата:
а вопрос, как под суммировать все нечетные, и четные числа?
Так у тя вроде это и делается как раз.
I'm learning to live...

Последний раз редактировалось Stilet; 13.08.2009 в 08:25.
Stilet вне форума Ответить с цитированием
Старый 13.08.2009, 10:31   #7
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Stilet
Цитата:
Пардон, а как ты это определил?
ну наверно по плюсовским потокам вывода
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 13.08.2009, 10:59   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ну наверно по плюсовским потокам вывода
Значит я никогда Си не видел... Круто. Я то думал что iostream в классическом Си есть. (Дык вроде есть же...)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.08.2009, 11:17   #9
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Цитата:
Я то думал что iostream в классическом Си есть.
Нету.. Язык си ни классов ни шаблонов не поддержует.
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 14.08.2009, 14:59   #10
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Цитата:
Сообщение от Stilet
Пардон, а как ты это определил?
К тому же в Си нельзя писать
Код:
for (int j = 0;j < 10;++j)
можно лишь
Код:
int j;
for (j = 0;j < 10;++j)
MaTBeu вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Здраствуйте Дорогие программисты mozgasos Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 21.04.2009 16:44
Здраствуйте!Зачетные задачки на списки...))) Помогите,плиз! Никита35 Помощь студентам 1 24.04.2008 14:02