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

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

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

Одномерный массив - C++

03.04.2010, 17:43. Просмотров 359. Ответов 3
Метки нет (Все метки)

Помогите плиз!!
Дан одномерный массив n целых эл-ов(конкретно=20)...Нужно:
1)Найти произведение эл-ов массива с четными номерами
2)Сумму эл-ов массива расположенных между первым и последним нулевыми элементами
3)Преобразовать массив таким образом, чтобы сначала располагались все положительные эл-ты, а потом все отрицательные(элементы=0, считать положительными)

вроде написал...НО выполняется только пункт 1..да и то не правильно(выводит 'левое число')
помогите кто нибудь
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
41
42
43
44
45
46
47
48
49
50
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <Math.h>
#include <iostream>
using namespace System;
 
int main(array<System::String ^> ^args)
{
Console::WriteLine(L"одномерный массив");
int a[20];
for(int i=0;i<=20;i++);
{
my_array[i]=int((rand() % 10 + 1)*pow(-1.0,(rand()%2)));
Console::Write(my_array[i]+" ");
}
int p = 1;
int i;
const int n=20;
for(i=0; i<n; i+=2); 
{
    p*=a[i];
    std::cout << "product:" <<p <<std::endl; 
      
 return 0;
}
 
 
 int sum = 0; 
 for(i=0; i<20; i++) if (a[i]==0) break;
 for(i++; i<20; i++) {
   if (a[i]==0) break; 
   sum += a[i];
 } 
std::cout << "sum:" <<sum <<std::endl;
 
int j;
 for(i=0; i<20; i++) { 
   if (a[i]>=0) continue;
   for(j=i+1; j<20; j++) { 
     if(a[j]<0) continue;
     int t = a[i];
     a[i] = a[j];
     a[j] = t;
     i =  j;
     break;
    }
  }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2010, 17:43     Одномерный массив
Посмотрите здесь:

C++ Одномерный массив
Одномерный массив C++
Одномерный массив! C++
Одномерный массив C++
C++ одномерный массив
C++ Одномерный массив
Одномерный массив C++
C++ одномерный массив.
Одномерный массив C++
одномерный массив C++
C++ Одномерный массив
одномерный массив C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DmitrijN
0 / 0 / 0
Регистрация: 01.04.2010
Сообщений: 9
03.04.2010, 20:19     Одномерный массив #2
Откуда читается массив? Ты его должен сам вбить или можно использовать заранее вбитый при инициализации массива?

код на Си устроит?
Bi-2
0 / 0 / 0
Регистрация: 24.02.2010
Сообщений: 17
06.04.2010, 13:22  [ТС]     Одномерный массив #3
устроит
DmitrijN
0 / 0 / 0
Регистрация: 01.04.2010
Сообщений: 9
06.04.2010, 21:49     Одномерный массив #4
Держи. Извини, грубовато получилось, времени нетак много было. Но прога работает. Можно написать лучше при наличии свободного времени.
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/*Г„Г*Г* îäГ*îìåðГ*ûé Г¬Г*Г±Г±ГЁГў n öåëûõ ГЅГ«-îâ(ГЄГ®Г*êðåòГ*Г®=20)...ГЌГіГ¦Г*Г®:
1)ГЌГ*éòè ïðîèçâåäåГ*ГЁГҐ ГЅГ«-îâ Г¬Г*Г±Г±ГЁГўГ* Г± Г·ГҐГІГ*ûìè Г*îìåðГ*ìè
2)Ñóììó ГЅГ«-îâ Г¬Г*Г±Г±ГЁГўГ* Г°Г*ñïîëîæåГ*Г*ûõ ìåæäó ïåðâûì ГЁ ïîñëåäГ*ГЁГ¬ Г*óëåâûìè ýëåìåГ*ГІГ*ìè
3)ÏðåîáðГ*çîâГ*ГІГј Г¬Г*Г±Г±ГЁГў ГІГ*ГЄГЁГ¬ îáðГ*çîì, ÷òîáû Г±Г*Г*Г·Г*Г«Г* Г°Г*ñïîëГ*ГЈГ*ëèñü ГўГ±ГҐ ïîëîæèòåëüГ*ûå 
ГЅГ«-ГІГ», Г* ïîòîì ГўГ±ГҐ îòðèöГ*òåëüГ*ûå(ýëåìåГ*ГІГ»=0, Г±Г·ГЁГІГ*ГІГј ïîëîæèòåëüГ*ûìè)*/
 
#include <stdio.h>
#define membnmr 8 //zamjeni potom na 20. Sam massiv ostavj vnjeshnim i zadaj kak konstantu ili ostavj peremennoj
 
int array[membnmr]; //budjem ispoljzovatj v 3 funkcijah, poetomu razumno sdelatj vnjeshnjej peremennoj
 
//zapolnim massiv
 
void write(int arr[])
    {
     int i=0;
     printf("Zapolni massiv\n");
     for(i=0; i<membnmr; i++)
        {
         scanf("%d", &arr[i]);      
        }  
     system("cls"); //ochistim okno konsoli         
    }
    
//Posle poluchenija massiva pristupim k samomu prijatnomu=)))
 
int multi(int arr[])
   {
    int i=0, multi=1;
    for(i=1; i<membnmr; i+=2) // itak, zdjesj kak raz taki poluchajem to samoje proizvedenije
       {
        multi*=array[i];  
       }
    return multi;      
   }
 
//summa mezhdu nuljami
int summa(int arr[])
   {
    int i=0, k=0, first=0, second=0, summ=0;
    //ischjem nuli
    for(i=0; i<membnmr; i++)
       {
        if(arr[i]==0)
           {
            k++;          
           }      
       }
    if(k<=1)
      {
       printf("V massivje odin nuljevoj eljemjent ili njet voobschje, summa nje mozhet bitj najdjena\n");      
      }
    else
      {
       for(i=0; i<membnmr; i++)
       {
        if(arr[i]==0)
           {
            k++; 
            if(k==1&&arr[i]==0)
              {
               first=i;              
              }
            else if(k>=2&&arr[i]==0)
                   {
                    second=i;                 
                   }         
           }      
       }         
      }
    for(i=first+1; i<second; i++)
       {
        summ+=arr[i];            
       }
    return summ;
   }
 
//poslednjaja funkcija sortirovki
 
void sort(int arr[])
    {
     int tempplus[membnmr], tempminus[membnmr], j=0, k=0, i=0;
     for(i=0; i<membnmr; i++)
         {
          if(arr[i]>=0)
            {
             tempplus[j]=arr[i];
             j++;           
            }
          else
            {
             tempminus[k]=arr[i];
             k++;             
            }
         }
     for(i=0; i<j; i++)
        {
         arr[i]=tempplus[i];      
        }
     for(i=j, k=0; i<membnmr; i++&&k++)
        {
         arr[i]=tempminus[k];      
        }
     for(i=0; i<membnmr; i++)
        {
         printf("%d ", arr[i]);      
        }
    }
//sozdadim funkciju v kotoroj budut vse rezuljtati
void rez()
    {
     int multi_=0, summ=0;
     write(array);
     multi_=multi(array);
     summ=summa(array);
     printf("1. Proizvjedjenije chetnih elementov jestj: %d\n", multi_);  
     printf("2. Summa mjezhdu nuljami: %d\n", summ); 
     printf("3. ");
     sort(array);  
    }
 
int main()
   {
    rez();
    system("pause");
    return 0;       
   }
Yandex
Объявления
06.04.2010, 21:49     Одномерный массив
Ответ Создать тему
Опции темы

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