Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Milan6265
1 / 1 / 0
Регистрация: 29.10.2010
Сообщений: 17
#1

Заменять первый положительный элемент массива средним арфиметическим - C++

29.10.2010, 21:27. Просмотров 827. Ответов 15
Метки нет (Все метки)

составить программу,которая в одномерном массиве f[m],m<=11 заменяет первый положительный элемент средним арфиметическим всех отрицатльных элементов массива.исходный и преобразованный массивы вывести в поясняющим текстом))
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2010, 21:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заменять первый положительный элемент массива средним арфиметическим (C++):

Третий положительный элемент массива заменить средним арифметическим положительных элементов - C++
Третий положительный элемент заменить среднеарифметическим значением положительных всех элементов . Сумму элементов массива ,...

Удалить первый положительный элемент массива; вставить новый элемент перед первым максимальным элементом - C++
Дан целочисленный массив размера N. Как удалить первый положительный элемент ? Как вставить новый элемент перед первым максимальным...

Исключить из массива первый положительный элемент - C++
Дан одномерный массив A, состоящий из N элементов. Исключите из массива первый положительный элемент, следующий за максимальным. Полученный...

Удалить первый положительный элемент массива - C++
Помогите докончить и исправить код, и объясните мне: 1) Как изменить размер массива 2) Как сдвигать элементы массива 3) Как работает...

Исключить из массива первый положительный элемент, следующий за максимальным - C++
Дан одномерный массив А, состоящий из N элементов.Исключить из массива первый положительный элемент,следующий за максимальным.

Исключить из массива первый, предшествующий максимуму, положительный элемент - C++
Дан одномерный массив А, состоящий из N элементов. Исключить из массива первый, предшествующий максимуму, положительный элемент.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.10.2010, 21:37 #2
C
1
2
3
4
5
6
7
8
9
10
11
int f[m],i,j,ii,k=0,g=0;
 
for (i=0;i<m;i++)
if (f[i]>0)
{ii=i;break;}
 
for (i=0;i<m;i++)
if (f[i]<0){
g+=f[i]; k++;}
g=g\k;
printf ("%d", g);
1
Milan6265
1 / 1 / 0
Регистрация: 29.10.2010
Сообщений: 17
29.10.2010, 21:45  [ТС] #3
m не определено пишет((я почти не шарю в си...
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.10.2010, 21:48 #4
Цитата Сообщение от Milan6265 Посмотреть сообщение
m не определено пишет((я почти не шарю в си...
ну правильно
объяви m (например в #define m 11, const int m=11 или введи с клавиатуры)
дальше введи массив

или тебе полный код написать?
1
Milan6265
1 / 1 / 0
Регистрация: 29.10.2010
Сообщений: 17
29.10.2010, 21:56  [ТС] #5
напиши как не жалко..мне эт на аттестации дали...в бауманке
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.10.2010, 22:11 #6
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
int main ()
{ int f[11],i,j,ii,k=0,g=0;
clrscr (); 
 
printf ("Введите m");
scanf ("%d", &m);
 
for (i=0;i<m;i++)               // простой ввод массива
{ printf("\nВведите f[%d]", i+1);
   scanf ("%d", &f[i]);
}
 
printf ("\n Исходный массив:"); 
for (i=0;i<m;i++)                         //Вывод массива
printf ("%5d", f[i]);
 
for (i=0;i<m;i++)
if (f[i]>0)
{ii=i;break;}
 
for (i=0;i<m;i++)
if (f[i]<0){
g+=f[i]; k++;}
g=g\k;
printf ("%d", g);
 
getch ();
 
return 0;
}
1
Milan6265
1 / 1 / 0
Регистрация: 29.10.2010
Сообщений: 17
29.10.2010, 22:30  [ТС] #7
мощно...только там были кое какие ошибки

Добавлено через 3 минуты
clrscr (); вот это не распознает
1
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.10.2010, 22:31 #8
Цитата Сообщение от Milan6265 Посмотреть сообщение
мощно...только там были кое какие ошибки
и где-же
самому интересно стало ))

добавь в начало
C
1
#include <conio.h>
а ну да

C
1
2
3
...
int m;
...
и точку с запятой пропустил
1
Астик
12 / 12 / 0
Регистрация: 03.10.2010
Сообщений: 173
Записей в блоге: 1
29.10.2010, 22:35 #9
Цитата Сообщение от go Посмотреть сообщение
for (i=0;i<m;i++) // простой ввод массива
{ printf("\nВведите f[%d]", i+1);
scanf ("%d", &f[i]);
он у тебя будет считывать не f[i] а f[i+1] и у тебя теряется 0 элемент и появляется лишний !!!! здесь просто надо использовать флаг ! простая прога !
щас пропишу сам код
1
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.10.2010, 22:42 #10
Цитата Сообщение от Астик Посмотреть сообщение
он у тебя будет считывать не f[i] а f[i+1] и у тебя теряется 0 элемент и появляется лишний !!!! здесь просто надо использовать флаг ! простая прога !
щас пропишу сам код
НЕ БУДЕТ!!!
я вывожу i+1
но не наращиваю i
это точно!!

Добавлено через 2 минуты
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <conio.h>
int main ()
{ int f[11],i,j,ii,k=0,g=0,m;
clrscr (); 
 
printf ("Введите m");
scanf ("%d", &m);
 
for (i=0;i<m;i++)               // простой ввод массива
{ printf("\nВведите f[%d]= ", i+1);
   scanf ("%d", &f[i]);
}
 
printf ("\n Исходный массив:"); 
for (i=0;i<m;i++)                         //Вывод массива
printf ("%5d", f[i]);
 
for (i=0;i<m;i++)
if (f[i]>0)
{ii=i;break;}
 
for (i=0;i<m;i++)
if (f[i]<0){
g+=f[i]; k++;}
g=g/k;
printf ("%d", g);
 
getch ();
 
return 0;
}

ТЕПЕРЬ ТОЧНО РАБОТАЕТ!!!
не путай i++ и i+1
0
Milan6265
1 / 1 / 0
Регистрация: 29.10.2010
Сообщений: 17
29.10.2010, 22:46  [ТС] #11
опять эту фигню подчеркивает
0
Астик
12 / 12 / 0
Регистрация: 03.10.2010
Сообщений: 173
Записей в блоге: 1
29.10.2010, 22:47 #12
Цитата Сообщение от go Посмотреть сообщение
НЕ БУДЕТ!!!
я вывожу i+1
но не наращиваю i
это точно!!
умник попробуй это в си запустить !!!!!
1
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.10.2010, 22:49 #13
Цитата Сообщение от Астик Посмотреть сообщение
умник попробуй это в си запустить !!!!!
запуска и не раз!!! а ты поучи си
1
Астик
12 / 12 / 0
Регистрация: 03.10.2010
Сообщений: 173
Записей в блоге: 1
29.10.2010, 23:06 #14
Цитата Сообщение от go Посмотреть сообщение
запуска и не раз!!! а ты поучи си
так значит у тя си такой же кривой как и твои руки !!!!!
вот норм прога козер. кому еще надо учится !!чему чему а эту хуйню я способен на си решить !
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main(void)
{
    int i,k,fl=1,temp,z;
    float sum=0,d[11];
    setlocale(LC_CTYPE,"Rus");
    printf("введите количество элементов массива ");
    scanf("%d",&k);
    if(k>5)
    printf("\nвведите %d элементов массива через пробел\n",k);
    else printf("\nвведите %d элементa массива через пробел\n",k);
    for(i=0;i<k;i++)
        scanf("%f",&d[i]);
    for(i=0;i<k;i++)
        printf("%f ",d[i]);
    printf("\n");
    for(i=0;i<k;i++)
        if(d[i]>0)
            if(fl)
            {
                z=i;
                fl=0;
            }
    
    for(i=0;i<k;i++)
        if(d[i]<0)
            sum+=d[i];
    sum=sum/k;
    temp=sum;
    sum=d[z];
    d[z]=temp;
    printf("полученный массив\n");
    for(i=0;i<k;i++)
        printf("%f ",d[i]);
    getch();
    return 0;
}
1
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.10.2010, 23:11 #15
Цитата Сообщение от Астик Посмотреть сообщение
if(k>5)
printf("\nвведите %d элементов массива через пробел\n",k);
else printf("\nвведите %d элементa массива через пробел\n",k);
к чему бы это
дальше не смотрел, т.к. уже видны оштбки
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2010, 23:11
Привет! Вот еще темы с ответами:

Заменить первый элемент массива средним арифметическим максимального и минимального элементов - C++
Здравствуйте, помогите пожалуйста решить задачку 1)Заменить первый элемент массива средним арифметическим максимального и минимального...

Заменить первый элемент массива средним геометрическим максимального и минимального элементов - C++
Добрый вечер, выручайте, помогите пожалуйста решить задачку на С++. Заранее большое спасибо. Заменить первый элемент массива средним...

Поменять местами первый отрицательный и последний положительный элемент массива - C++
Поменять местами первый отрицательный и последний положительный елемент массива. Учесть возможность того, что отрицательные или...

В пользовательском классе "Двусвязный список" продублировать первый положительный элемент и удалить первый отрицательный - C++
Здравствуйте,помогите пожалуйста в тете &quot;Двусвязный список&quot; Создать двусвязный список с указателями на первый и последний элементы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.10.2010, 23:11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru