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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2007, 13:44   #1
DimaG
Пользователь
 
Регистрация: 13.10.2007
Сообщений: 11
По умолчанию Лаба по массивам

Помогите плиз сделать лабу на С++. Значит массив из целых элементов нужно разделить на два массива - четный и нечетный. Вот чтоя сам наваял:
Код:
#include<iostream.h>
#include<stdio.h>
#include<conio.h>

main()
{
	clrscr();
	int num,i,x,a;
	int mas[10],chet[10],nechet[10];
	cout<<"Enter 10 integer numbers\n";
	for (i=0;i<=9;i++)
	{
		cin>>a;
		mas[i]=a;
		if (mas[i]%2==0)
			for(x=0;x<=9;x++) chet[x]=mas[i];
			else for(x=0;x<=9;x++) nechet[x]=mas[i];
	 }
	for (i=0;i<=9;i++) cout<<mas[i]<<", ";
	cout<<"Chet: ";
	for (x=0;x<=9;x++) cout<<chet[x]<<" ";
	cout<<"Nechet: ";
	for (x=0;x<=9;x++) cout<<nechet[x];
	getch();
	return 0;
}
Работает, да не так как надо. Вместо массивов четных и нечетных элементов выводит по 10 раз последнее четное и последнее нечетное. Мозги уже перегрелись, а не могу понять почему Объясните, как сделать чтоб нормально работало.

Последний раз редактировалось DimaG; 13.10.2007 в 13:47.
DimaG вне форума Ответить с цитированием
Старый 13.10.2007, 15:47   #2
serbezoff
 
Регистрация: 07.10.2007
Сообщений: 7
Восклицание

компилятора С++ у меня сейчас нет, но есть мысль: " вывод на экран организуй сразу же после проверки на четность(в одном цикле) если это проблему не устранит то по крайней мере будет проще её выявить!

Последний раз редактировалось serbezoff; 13.10.2007 в 16:09.
serbezoff вне форума Ответить с цитированием
Старый 13.10.2007, 16:02   #3
serbezoff
 
Регистрация: 07.10.2007
Сообщений: 7
По умолчанию

я тут еще поглядел и без компилятора понял:
попробуй написать следующее!
#include<iostream.h>
#include<stdio.h>
#include<conio.h>

main()
{
clrscr();
int num,i,x,a,y;
int mas[10],chet[10],nechet[10];
cout<<"Enter 10 integer numbers\n";
x=0;

for (i=0;i<=9;i++)
{
cin>>a;
mas[i]=a;
if (mas[i]%2==0) {
chet[x]=mas[i]; x++;}
else { nechet[y]=mas[i]; y++;
}
}
for (i=0;i<=9;i++) cout<<mas[i]<<", ";
cout<<"Chet: ";
for (y=0;y<=9;y++) cout<<chet[x]<<" ";
cout<<"Nechet: ";
for (x=0;x<=9;x++) cout<<nechet[x];
getch();
return 0;
}
если что не правильно извини но этот вариант более правильный чем твой у тебя проблема в том что при проверке на четность ты присваиваешь проверяемый элемент всему выходному четному или нечетному массиву, а надо присваивать одному элементу массива, в общем два лишних цикла я выкинул, а счетчики оставил!!!!!

Последний раз редактировалось serbezoff; 13.10.2007 в 18:28. Причина: что то я невнимателен!
serbezoff вне форума Ответить с цитированием
Старый 14.10.2007, 16:49   #4
DimaG
Пользователь
 
Регистрация: 13.10.2007
Сообщений: 11
По умолчанию

Значит попробовал я. Не работает То что циклы лишние убрал, то идея хорошая,но на резалт оно не повлияло. Тоесть повлияло,но не так как надо Вместо масива четных 10 раз выводится число, а вместо масива нечетных вообще какой-то набор цифр типа 456468465464864685416-1445678-97478179176. Блин, завтра сдавать уже надо, а там еще куча заданий других
DimaG вне форума Ответить с цитированием
Старый 14.10.2007, 17:26   #5
DimaG
Пользователь
 
Регистрация: 13.10.2007
Сообщений: 11
По умолчанию

значит так, еще вопросик назрел В том же массиве (mas[10]) надо определить минимальный и максимальный элемент. Подскажите алгоритм ато голова чето не варит. Код то я уж думаю сам напишу, а вот даже сам алгоритм определения мин,макс не могу сообразить.
DimaG вне форума Ответить с цитированием
Старый 14.10.2007, 19:04   #6
KORT
Вот я и
Форумчанин
 
Аватар для KORT
 
Регистрация: 07.04.2007
Сообщений: 501
По умолчанию

Код:
 
#include <stdio.h> 
#include <conio.h> 
#define HB 5 // размер массива 
void main() {
int a[HB]; // массив
int min,max; // номер минимального и максимального элемента
int i; // индекс массива
printf("\nПоиск минимального элемента массива\n"); 
printf("Введите в одной строке элементы массива,\n"); 
printf("%i целых чисел, и нажмите <Enter>\n", HB) ; 
printf("-> ") ; 
for (i = 0; i < HB; i++) {
scanf("%i",&a[i]);
min =0; // предположим, что первый эл-т минимальный 
            // сравним оставшиеся эл-ты массива с минимальным 
for (i = 1; i < HB; i++)
if (a[i] < a[min]) min = i;
printf("Минимальный элемент массива: "); 
printf("a[%i]=%i ", min+1, a[min]); }
for (i = 0; i < HB; i++) {
scanf("%i",&a[i]);
max =0; // предположим, что первый эл-т максимальный 
           // сравним оставшиеся эл-ты массива с максимальным 
for (i = 1; i < HB; i++)
if (a[i] > a[max]) max = i;
printf("Максимальный элемент массива: "); 
printf("a[%i]=%i ", max+1, a[max]); }
printf("\nДля завершения нажмите <Enter>"); 
getch(); }
Исходники программ - http:\\www.kort.3dn.ru
KORT вне форума Ответить с цитированием
Старый 14.10.2007, 19:38   #7
DimaG
Пользователь
 
Регистрация: 13.10.2007
Сообщений: 11
По умолчанию

Не работает. При любых введенных числах результат:
Min a[4]=-29386
Max a[5]=12803
DimaG вне форума Ответить с цитированием
Старый 14.10.2007, 19:42   #8
KORT
Вот я и
Форумчанин
 
Аватар для KORT
 
Регистрация: 07.04.2007
Сообщений: 501
По умолчанию

Не знаю, я сдавал, у меня все работало.
Исходники программ - http:\\www.kort.3dn.ru
KORT вне форума Ответить с цитированием
Старый 14.10.2007, 20:08   #9
DimaG
Пользователь
 
Регистрация: 13.10.2007
Сообщений: 11
По умолчанию

Хм, может у меня компилятор какой-то кривой, я уже не знаю что и думать
DimaG вне форума Ответить с цитированием
Старый 14.10.2007, 20:10   #10
KORT
Вот я и
Форумчанин
 
Аватар для KORT
 
Регистрация: 07.04.2007
Сообщений: 501
По умолчанию

Цитата:
Сообщение от DimaG Посмотреть сообщение
Хм, может у меня компилятор какой-то кривой, я уже не знаю что и думать
Все может быть.
Исходники программ - http:\\www.kort.3dn.ru
KORT вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно сделать 2 лабы по Delphi. 250р=1 лаба Reload Помощь студентам 6 30.01.2013 23:21
задачи по массивам - помогите !!! Heidi Паскаль, Turbo Pascal, PascalABC.NET 18 18.12.2010 15:37
# Delphi - Задача по массивам. Mysia Помощь студентам 4 05.05.2008 17:39
Вопрос по массивам Azzy Общие вопросы .NET 4 23.12.2007 23:43
Задача по массивам grerg Помощь студентам 1 30.10.2007 08:25