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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.81
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
#1

Заполнение массива - C++

23.02.2011, 13:35. Просмотров 7521. Ответов 27
Метки нет (Все метки)

Как заполнить массив?
Вот что получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
    int i,n,c,a[500];
    
    printf("Введите количество символов n= \n");
    scanf("%d",&n);
    printf("Ввести символы: \n");
    for (i=0; i<n; i=i+1)
    {
    scanf("%d",a[i]);
    }
    printf("Массив \n");
    for (i=0; i<n; i=i+1)
    {
    printf("\n %d",&a[i]);
    }
    getch();
}
Выдает какой то лист ошибок. Можно рандомно заполнить если сможете!! Помогите плиз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2011, 13:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Заполнение массива (C++):

ввод двумерного массива,ввод размерности массива,заполнение массива случайными числами - C++
#include &quot;stdafx.h&quot; #include &quot;locale.h&quot; #include &quot;stdlib.h&quot; #include &quot;math.h&quot; void main() { setlocale(LC_ALL,&quot;rus&quot;); int...

Заполнение массива значениями из символьного массива - C++
есть массив символов char z;есть целочисленный массив int b;каждый символ z это цифра 0-9 нужно в b записать символ z(не код символа а...

Заполнение массива - C++
Привет народ! Очень нужна помощь срочно!(( Вот такое вот задание: 1,Составьте программу заполнения массива А(N,N) нулями и единицами в...

Заполнение массива - C++
У меня есть строка, которую пользователь ввел с консоли как мне каждый элемент строки добавить в массив??? Добавлено через 7 минут ...

Заполнение массива - C++
Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и находящимися в интервале, левая граница...

Заполнение массива - C++
Извините, что флудю, просто в старой теме уже не отвечают. data::data(int f){ if (f==1) ...

27
MILAN
887 / 781 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
23.02.2011, 23:24 #16
Цитата Сообщение от Сеня 2007 Посмотреть сообщение
for (i=0; i<n; i++)
{
if (abs(a[i])>abs(a[i+1]))
{
i==ci;
}
}
Что вы здесь хотите сделать?

Добавлено через 5 минут
Сеня 2007, желательно сформируйте полностью задание.
0
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
24.02.2011, 06:58  [ТС] #17
Вот задание:
В одномерном массиве, состоящем из п целых элементов, вычислить
1) количество элементов массива, больших С;
2) произведение элементов массива, расположенных после максимального по модулю элемента.
Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом — все положительные (элементы, равные 0, считать положительными).

Я пытаюсь сделать вторую часть!
0
qdlbp
2 / 2 / 0
Регистрация: 24.12.2010
Сообщений: 5
24.02.2011, 11:44 #18
Произведение элементов массива, расположенных после максимального по модулю элемента:
1. Находишь максимальный по модулю элемент и запоминаешь его индекс
2. объявляешь локальную переменную и инициализируешь ее 1
3. в цикле от индекса, который ты запомнил, и до конца массива умножаешь каждый элемент на локальную переменную, которую ты объявил, а результат запоминаешь в эту же локальную переменную.
Ничего сложного.
Предупреждение: при умножении возможно переполнение (т. е. значение умноженных чисел будет больше максимального значения, которое может содержать переменная данного типа)
PS: в моем коде я использовал STL
0
MILAN
887 / 781 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
24.02.2011, 15:26 #19
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
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <math.h>
#include <time.h>
#include <conio.h>
 
int number_more_c(int *arr,int size, int c);
int mult_after_max(int *arr, int size);
int* sort(int *arr,int size);
int main()
{
  //  srand(unsigned int time(0));
    int *arr;
    int size,i,c;
    printf("Enter number elements -> ");
    scanf("%d",&size);
    arr=(int*)malloc(size*sizeof(int));
    printf("Array -> ");
     for(i=0; i<size; i++)
     {
         arr[i]=rand()%9-4;
         printf("%d ",arr[i]);
     }
    printf("\nEnter c -> ");
    scanf("%d",&c);
    printf("\nNumber elements more c -> %d",number_more_c(arr,size,c));
    printf("\nMult after mod max -> %d",mult_after_max(arr,size));
    sort(arr,size);
    printf("\nSorted array -> ");
    for(i=0; i<size;i++)
      {
          printf("%d ",arr[i]);
 
      }
    printf("\n\n");
    getch();
    return 0;
}
 
// first task
int number_more_c(int *arr, int size, int c)
 {
     int cnt_more_c=0,i;
      for(i=0; i<=size; i++)
      {
          if(arr[i]>c)
          {
              cnt_more_c++;
          }
      }
     return cnt_more_c;
 }
 
 // second task
 int mult_after_max(int *arr, int size)
 {
     int mod_max=abs(arr[0]);
     int num_mod_max=0,i,mult=1;
      for(i=0; i<size; i++)
      {
          if(abs(arr[i])>=mod_max)
          {
              mod_max=abs(arr[i]);
              num_mod_max=i;
          }
      }
      for(i=num_mod_max; i<size; i++)
      {
          mult*=arr[i];
      }
    return mult;
 }
 
 // sorted
 
 int* sort(int *arr, int size)
 {
     int tmp,i,j;
      for(i=0; i<size; i++)
      {
          for(j=i; j<size; j++)
          {
              if(arr[i]>arr[j])
              {
                  tmp=arr[i];
                  arr[i]=arr[j];
                  arr[j]=tmp;
              }
          }
      }
     return arr;
 }
1
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
25.02.2011, 14:52  [ТС] #20
Как сделать чтобы числа генерировались от -20 до 20?
0
timchuchok
15 / 15 / 0
Регистрация: 21.12.2010
Сообщений: 55
25.02.2011, 15:24 #21
(rand(()%40) - 20
0
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
25.02.2011, 15:45  [ТС] #22
не работает...все равно генерит до 20
0
timchuchok
15 / 15 / 0
Регистрация: 21.12.2010
Сообщений: 55
25.02.2011, 16:05 #23
ну так же и должно быть, от -20 до 20!
0
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
25.02.2011, 17:39  [ТС] #24
минусов ваще нет

Добавлено через 14 минут
то есть все числа положительные
0
Escapable
54 / 54 / 2
Регистрация: 09.11.2010
Сообщений: 120
25.02.2011, 18:00 #25
C++
1
(rand()%21) - (rand()%21); // от -20 до 20
1
qdlbp
2 / 2 / 0
Регистрация: 24.12.2010
Сообщений: 5
25.02.2011, 18:41 #26
C++
1
(int)(((float)rand() / RAND_MAX) * 40 - 20)
1
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
25.02.2011, 19:51  [ТС] #27
Вот вся программа:
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
 
void main()
{
        int i,n,j,c,id=0;
        int ci=0,proiz;
        int mod_max,tmp;
        int num_mod_max=0,mult=1;
 
                int a[500];
        setlocale (LC_ALL, "Russian");
        printf("Введите количество элементов  n= \n");
        scanf("%d",&n);
        for (i=0; i<n; i++)
        {
        a[i]=(rand()%21) - (rand()%21);
        }
        printf("Массив \n");
        for (i=0; i<n; i++)
        {
        printf("\n %d",a[i]);
        }
        mod_max=abs(a[0]);
        printf("\n Введите число С \n");
        scanf("%d",&c);
        for (i=0; i<n; i++)
        {
            if (c<a[i])
            {
                id++;
            }
        }
        printf("Количество элементов больших С=%d",id);
        for (i=0; i<n; i++)
        {
            if (abs(a[i])>=mod_max)
            {
                mod_max=abs(a[i]);
                num_mod_max=i;
            }
        }
        for (i=num_mod_max; i<n; i++)
        {
            mult*=a[i];
        }
        printf("\n Произведение = %d",mult);
         for(i=0; i<n; i++)
      {
          for(j=i; j<n; j++)
          {
              if(a[i]>a[j])
              {
                  tmp=a[i];
                  a[i]=a[j];
                  a[j]=tmp;
              }
          }
      }
         printf("\n Отсортированный массив ");
    for(i=0; i<n;i++)
      {
          printf("%d ",a[i]); 
      }
    printf("\n\n");
 
 
 
        getch();
}
Может кому пригодится!
0
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
04.03.2011, 15:33  [ТС] #28
Народ терь помогите разбить программу на функции ибо с ними ваще не знаком на си
0
04.03.2011, 15:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2011, 15:33
Привет! Вот еще темы с ответами:

Заполнение массива - C++
Здравствуйте, помогите пожалуйста заполнить массив таким образом, или хотя бы подскажите алгоритм) Заранее благодарен...

Заполнение массива от -5 до 5. - C++
Всем привет, народ помогите пожалуйста с задачей... Borland c 3.1 Заполнить массив из десяти элементов случайными числами в...

Заполнение массива - C++
Помогите, пожалуйста, решить такую задачу: Нужно заполнить массив 6*6 цифрами от 1 до 36 по следующей схеме: 1 2 4 7 11 16 3 ...

Заполнение массива - C++
Здравствуйте, подскажите, как заполнить массив например из 10 000 элементов по условию задачи мне нужно работать с числами от &quot;0001&quot; до...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Опции темы

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