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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2009, 17:15   #1
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию Си++. Одномерный массив.

Здравствуйте. Не могли бы Вы мне помочь с такой задачкой: нужно создать одномерный массив, элементы ввести с клавиатуры, найти маскимальный элемент и поменять его местами с первым, а так же подситать кол-во нечетных элементов. Ну максимальный я нашла..вот, что получилось..
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[5];
int i,max;
for (i = 0; i<5; i++)
{
printf("vvedite a[%d]: ", i);
scanf("%d", &a[i]);
}
max = a[0];
for (i = 1; i < 5; i++)
{
if (max < a[i])
{
max = a[i];
}
}
a[i]=max;
for (i = 0; i < 5; i++)
printf("a[%d]=%d\n", i, a[i]);
printf("max = %d\n", max);
system("PAUSE");
return 0;
}

не подскажите, а как дальше? никак не могу понять
Diamond2107 вне форума Ответить с цитированием
Старый 29.11.2009, 18:09   #2
30MBU
Пользователь
 
Аватар для 30MBU
 
Регистрация: 15.09.2009
Сообщений: 19
По умолчанию

Код:
for (i = 1; i < 5; i++)
{
if (max < a[i])
{
max = a[i];
ind = i; //предположим так
}
}
num = a[0]; //значение первого
a[0] = max;
a[ind] = num; //весь обмен!
Чтобы поменять первый элемент с максимальным нажно запоминать индекс максимального (Ты этого не делаешь)

Подсчёт чётных элементов, в том же массиве:
Код:
if(a[i]%2 == 0) {
count++; //типа счётчик чётных элементов
}
30MBU вне форума Ответить с цитированием
Старый 29.11.2009, 18:10   #3
Valentine
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 14
По умолчанию

Лови код, проверил, вроде все работает

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main()
{
int a[5];
int i,max,sum=0,i_max;

for (i = 0; i<5; i++)
{
printf("vvedite a[%d]: ", i);
scanf("%d", &a[i]);
}

max = a[0];

for (i = 0; i < 5; i++)
{
if (a[i]>max) {max=a[i]; i_max=i;}
if (a[i]%2) sum++;
}
a[i_max]=a[0];
a[0]=max;

for (i = 0; i < 5; i++)
printf("a[%d]=%d\n", i, a[i]);
printf("max = %d\n", max);
printf("Kolichestvo nechetnuch=%d",sum);
system("PAUSE");
return 0;
}
Valentine вне форума Ответить с цитированием
Старый 29.11.2009, 18:16   #4
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

Спасибо))..а у меня вот так вышло..

#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[5];
int i,max,index=0,count=0;
for (i = 0; i<5; i++)
{
printf("vvedite a[%d]: ", i);
scanf("%d", &a[i]);
if (a[i]%2) count++;
}
max = a[0];
for (i = 1; i < 5; i++)
if (max < a[i]) max = a[i],index=i;

if (index)
{
a[0]^=a[index];
a[index]^=a[0];
a[0]^=a[index];
}

for (i = 0; i < 5; i++)
printf("a[%d]=%d\n", i, a[i]);

printf("max = %d\n", max);
printf("kol-vo nechetnuh = %d\n", count);

system("PAUSE");
return 0;
}

А не подскажите как найти номер последнего максимального элемента?..
Diamond2107 вне форума Ответить с цитированием
Старый 29.11.2009, 18:21   #5
30MBU
Пользователь
 
Аватар для 30MBU
 
Регистрация: 15.09.2009
Сообщений: 19
По умолчанию

Код:
for (i = 1; i < 5; i++)
if (max < a[i]) max = a[i],index=i;//вот сдесь максимальный элемент и будет последним
этот кусок немного напоминает китайский язык
Код:
if (index)
{
a[0]^=a[index];
a[index]^=a[0];
a[0]^=a[index];
}
не нужно ничего спаршивать, просто меняй!
30MBU вне форума Ответить с цитированием
Старый 29.11.2009, 18:31   #6
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

30MBU, ну вот. Боюсь тебя теперь спрашивать(
Diamond2107 вне форума Ответить с цитированием
Старый 29.11.2009, 18:37   #7
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

У меня же так же все. Что менять то надо(..извини за вопрос..
Diamond2107 вне форума Ответить с цитированием
Старый 29.11.2009, 18:39   #8
30MBU
Пользователь
 
Аватар для 30MBU
 
Регистрация: 15.09.2009
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Valentine Посмотреть сообщение
a[i_max]=a[0];
a[0]=max;
Лучше даже такой способ!
30MBU вне форума Ответить с цитированием
Старый 29.11.2009, 18:44   #9
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

Цитата:
Сообщение от 30MBU Посмотреть сообщение
Лучше даже такой способ!
Вот так как раз и неработает..компилирует..и вылетает..
Diamond2107 вне форума Ответить с цитированием
Старый 29.11.2009, 18:46   #10
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

Подскажи пожалуйста как найти номер последнего максимального элемента?
Diamond2107 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
Одномерный массив Ximer Паскаль, Turbo Pascal, PascalABC.NET 0 13.05.2009 19:54
Одномерный массив. gree Помощь студентам 6 12.05.2009 20:29
одномерный массив Кирилл17 Помощь студентам 5 22.12.2008 00:13
Одномерный массив Sirega Паскаль, Turbo Pascal, PascalABC.NET 6 27.11.2008 21:21