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

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

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

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

23.02.2011, 13:35. Просмотров 6578. Ответов 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) ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
23.02.2011, 13:59 #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
#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
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
23.02.2011, 13:59  [ТС] #3
Сделал теперь почему то указывает числа 6 значные заместо указанных мной
0
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247
23.02.2011, 14:02 #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
 
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
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
23.02.2011, 14:22  [ТС] #5
Цитата Сообщение от White Luna Посмотреть сообщение
stdafx.h
Что это?
Все равно генерит 7 значные числа!!!
Вообще вот задание может есть у кого то готовый вариант?
В одномерном массиве, состоящем из п целых элементов, вычислить
1) количество элементов массива, больших С;
2) произведение элементов массива, расположенных после максимального по модулю элемента.
Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом — все положительные (элементы, равные 0, считать положительными).

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

Добавлено через 1 час 55 минут
помогите штоль кто нить
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.02.2011, 18:47 #9
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
qdlbp
2 / 2 / 0
Регистрация: 24.12.2010
Сообщений: 5
23.02.2011, 19:32 #10
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
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
23.02.2011, 19:45  [ТС] #11
Цитата Сообщение от 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
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
23.02.2011, 20:36 #12
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
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
23.02.2011, 20:38  [ТС] #13
Помогите пожалуйста переделать этот вариант под простой С. А то я ваще не пойму ниче!!!
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
23.02.2011, 20:40 #14
Сеня 2007, ето и есть С.
1
Сеня 2007
2 / 2 / 0
Регистрация: 03.10.2010
Сообщений: 182
23.02.2011, 21:43  [ТС] #15
Вот что сейчас:
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2011, 21:43
Привет! Вот еще темы с ответами:

Заполнение массива - 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; до...


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

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

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