Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/120: Рейтинг темы: голосов - 120, средняя оценка - 4.78
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 182

Заполнение массива

23.02.2011, 13:35. Показов 24300. Ответов 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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.02.2011, 13:35
Ответы с готовыми решениями:

Ввод двумерного массива, ввод размерности массива, заполнение массива случайными числами
#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...

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

Заполнение массива
Имею данные вводимые с консоли (до закрытия потока CTRL Z) и заранее мне известно только количество столбцов (а) но неизвестно сколько...

27
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
23.02.2011, 13:59
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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <stdlib.h>
 
int main()
{
        int i,n,c,a[500];
        setlocale (LC_ALL, "Russian"); // что бы русские буквы были
        printf("Введите количество символов n= \n");
        scanf("%d",&n);
        printf("Ввод случайных символов: \n");
        for (i=0; i<n; i=i+1)
        {
       
 c=rand() % 20 + 1; // случайные числа от 0 до 20
a[i] = c;
 
        }
        printf("Массив \n");
        for (i=0; i<n; i=i+1)
        {
        printf("\n %d",&a[i]);
        }
        getch();
        return 0;
}
смотри, вроде так,
1
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 182
23.02.2011, 13:59  [ТС]
Сделал теперь почему то указывает числа 6 значные заместо указанных мной
0
19 / 19 / 5
Регистрация: 17.10.2010
Сообщений: 247
23.02.2011, 14:02
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
 
int randomize(int n,int mas[400])
{   
    for(int i=0;i<400;i++)
mas[i]=rand()%89+10;
return mas[400];
}
int custom(int &n, int mas[400])
{   int c;setlocale(LC_ALL,"Russian");
    cout<<"Введите количество элементов массива: ";cin>>n;
    for(int i=0;i<n;i++)
        {cout<<"\nВведите "<<i+1<<"-й элемент массива: ";
        cin>>c;
        mas[i]=c;
        }
return mas[400];
}
int def(int &n, int mas[400])
{ for(int i=0;i<n;i++)
    mas[i]=300-i;
return mas[400];
}
 
 
switch(sw)//в функции маин
        {
            case 1: custom(n,mas); break;
            case 2: randomize(n,mas); break;
            case 3: def(n, mas); break;
            case 0: return; break;
        }
1
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 182
23.02.2011, 14:22  [ТС]
Цитата Сообщение от White Luna Посмотреть сообщение
stdafx.h
Что это?
Все равно генерит 7 значные числа!!!
Вообще вот задание может есть у кого то готовый вариант?
В одномерном массиве, состоящем из п целых элементов, вычислить
1) количество элементов массива, больших С;
2) произведение элементов массива, расположенных после максимального по модулю элемента.
Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом — все положительные (элементы, равные 0, считать положительными).

Добавлено через 11 минут
Вот картинка что показывает у меня:
Хотя в отладчике показывает правильно сгенереные числа от 0 до 20
Миниатюры
Заполнение массива  
0
15 / 15 / 1
Регистрация: 21.12.2010
Сообщений: 55
23.02.2011, 15:58
для заполнения масива рандома:
C++
1
2
3
int A[NMAX];
for ( int i = 0; i < NMAX; i++)
A[i] = rand();
0
19 / 19 / 5
Регистрация: 17.10.2010
Сообщений: 247
23.02.2011, 16:12
7-значные с точкой????? тип инт надо, а не флоат или дабл. если же надо дабл - почитай как можно через cout или printf можно откидывать после точки
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 182
23.02.2011, 18:13  [ТС]
без точек все. просто значения показывает 7 значные пройди по ссылке и увидеш. а когда смотрю при дебаге показывает нормальные числа а в компиляторе 7 значные

Добавлено через 1 час 55 минут
помогите штоль кто нить
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
23.02.2011, 18:47
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//исправленый код  [b]White Luna[/b]
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
 
int main()
{
        int i,n,c,a[500];
        setlocale (LC_ALL, "Russian"); 
        printf("Введите количество символов n= \n");
        scanf("%d",&n);
        printf("Ввод случайных символов: \n");
        for (i=0; i<n; i=i+1)
           a[i] = and() % 20 + 1; 
        printf("Массив \n");
        for (i=0; i<n; i=i+1)
        {
        printf("\n %d",a[i]); //сдесь не нужен амперсанд
        }
        getchar();
        return 0;
}
0
2 / 2 / 0
Регистрация: 24.12.2010
Сообщений: 5
23.02.2011, 19:32
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
#include <conio.h>
 
#include <algorithm>
#include <ctime>
#include <iostream>
#include <vector>
 
using namespace std;
 
bool value_greater_10(int value)
{
    return value > 10;
}
 
int _max = 0;
 
bool is_first_max_value(int value)
{
    return value == _max;
}
 
int main()
{
    const int array_size = 10;
 
    vector<int> items;
 
    // Random fill array of elements in range from 0 to 20
    srand(time(NULL));
    for (int i = 0; i < array_size; ++i)
    {
        //items.push_back((int)(((float)rand() / RAND_MAX) * 20));
        int value = (int)(((float)rand() / RAND_MAX) * 20);
        items.push_back((rand() % 2) ? value : (-value));
    }
 
    // Print array
    cout << "Array:" << endl;
    for (vector<int>::iterator i = items.begin(); i != items.end(); ++i)
    {
        cout << *i << endl;
    }
    cout << endl;
 
    // Print count of elements greater 10
    cout << "Count of elements > 10: " << count_if(items.begin(), items.end(), value_greater_10) << endl << endl;
 
    // Find max element and multiple elements right of max
    _max = *(max_element(items.begin(), items.end()));
    int result = 1;
    for (vector<int>::iterator i = find_if(items.begin(), items.end(), is_first_max_value); i != items.end(); ++i)
    {
        result *= *i;
    }
    
    // Print multiple elements right of max
    cout << "Multiple elements right of max: " << result << endl << endl;
 
    // Sort array
    sort(items.begin(), items.end());
 
    // Print array
    cout << "Array:" << endl;
    for (vector<int>::iterator i = items.begin(); i != items.end(); ++i)
    {
        cout << *i << endl;
    }
    cout << endl;
 
    cout << "Press any key to exit";
    getch();
    
    return 0;
}
1
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 182
23.02.2011, 19:45  [ТС]
Цитата Сообщение от qdlbp Посмотреть сообщение
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
#include <conio.h>
 
#include <algorithm>
#include <ctime>
#include <iostream>
#include <vector>
 
using namespace std;
 
bool value_greater_10(int value)
{
    return value > 10;
}
 
int _max = 0;
 
bool is_first_max_value(int value)
{
    return value == _max;
}
 
int main()
{
    const int array_size = 10;
 
    vector<int> items;
 
    // Random fill array of elements in range from 0 to 20
    srand(time(NULL));
    for (int i = 0; i < array_size; ++i)
    {
        //items.push_back((int)(((float)rand() / RAND_MAX) * 20));
        int value = (int)(((float)rand() / RAND_MAX) * 20);
        items.push_back((rand() % 2) ? value : (-value));
    }
 
    // Print array
    cout << "Array:" << endl;
    for (vector<int>::iterator i = items.begin(); i != items.end(); ++i)
    {
        cout << *i << endl;
    }
    cout << endl;
 
    // Print count of elements greater 10
    cout << "Count of elements > 10: " << count_if(items.begin(), items.end(), value_greater_10) << endl << endl;
 
    // Find max element and multiple elements right of max
    _max = *(max_element(items.begin(), items.end()));
    int result = 1;
    for (vector<int>::iterator i = find_if(items.begin(), items.end(), is_first_max_value); i != items.end(); ++i)
    {
        result *= *i;
    }
    
    // Print multiple elements right of max
    cout << "Multiple elements right of max: " << result << endl << endl;
 
    // Sort array
    sort(items.begin(), items.end());
 
    // Print array
    cout << "Array:" << endl;
    for (vector<int>::iterator i = items.begin(); i != items.end(); ++i)
    {
        cout << *i << endl;
    }
    cout << endl;
 
    cout << "Press any key to exit";
    getch();
    
    return 0;
}
А можно попроще сделать? А то я не понимаю как здесь происходит!
0
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
23.02.2011, 20:36
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;
        int a[500];
        printf("Enter number elements  n= \n");
        scanf("%d",&n);
        printf("Enter elements: \n");
        for (i=0; i<n; i++)
        {
        scanf("%d",&a[i]);
        }
        printf("Array \n");
        for (i=0; i<n; i++)
        {
        printf("\n %d",a[i]);
        }
        getch();
}
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 182
23.02.2011, 20:38  [ТС]
Помогите пожалуйста переделать этот вариант под простой С. А то я ваще не пойму ниче!!!
0
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
23.02.2011, 20:40
Сеня 2007, ето и есть С.
1
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 182
23.02.2011, 21:43  [ТС]
Вот что сейчас:
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 <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
 
void main()
{
        int i,n,c,id;
        int ci,proiz;
                int a[500];
        setlocale (LC_ALL, "Russian");
        printf("Введите количество элементов  n= \n");
        scanf("%d",&n);
        for (i=0; i<n; i++)
        {
        a[i]=rand() % 20 + 1;
        }
        printf("Массив \n");
        for (i=0; i<n; i++)
        {
        printf("\n %d",a[i]);
        }
        printf("\n Введите число С \n");
        scanf("%d",&c);
        id=0;
        for (i=0; i<n; i++)
        {
            if (c<a[i])
            {
                id++;
            }
        }
        printf("Количество элементов больших С=%d",id);
        ci=0;
        for (i=0; i<n; i++)
        {
            if (abs(a[i])>abs(a[i+1]))
            {
                i==ci;
            }
        }
        proiz=1;
        for (i==ci; i<n; i++)
        {
            proiz=proiz*a[i];
        }
        printf("\n Произведение = %d",proiz);
 
        getch();
}
Только чего то он мне произведение не считает и когда по модулю операцию делаю он мне не те результаты выдает в режиме дебага!
0
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
23.02.2011, 23:24
Цитата Сообщение от Сеня 2007 Посмотреть сообщение
for (i=0; i<n; i++)
{
if (abs(a[i])>abs(a[i+1]))
{
i==ci;
}
}
Что вы здесь хотите сделать?

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

Я пытаюсь сделать вторую часть!
0
2 / 2 / 0
Регистрация: 24.12.2010
Сообщений: 5
24.02.2011, 11:44
Произведение элементов массива, расположенных после максимального по модулю элемента:
1. Находишь максимальный по модулю элемент и запоминаешь его индекс
2. объявляешь локальную переменную и инициализируешь ее 1
3. в цикле от индекса, который ты запомнил, и до конца массива умножаешь каждый элемент на локальную переменную, которую ты объявил, а результат запоминаешь в эту же локальную переменную.
Ничего сложного.
Предупреждение: при умножении возможно переполнение (т. е. значение умноженных чисел будет больше максимального значения, которое может содержать переменная данного типа)
PS: в моем коде я использовал STL
0
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
24.02.2011, 15:26
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
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 182
25.02.2011, 14:52  [ТС]
Как сделать чтобы числа генерировались от -20 до 20?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.02.2011, 14:52
Помогаю со студенческими работами здесь

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

Заполнение массива
Даны числа от 0 до 15 (включительно), нужно записать их в одномерный массив в рандомном порядке, при этом числа не должны повторяться ...

Заполнение массива
Как заполнить массив числами от 1 до 100000 ? А то не резон как то писать int mass = {1,2,3,4,.....} И еще не подскажете как заолнить...

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru