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

error C2109: для индекса требуется массив или указатель - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.94
Айгулька
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 7
11.01.2011, 18:17     error C2109: для индекса требуется массив или указатель #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
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <stdlib.h>
 
 
int prost(int b)
{
int i,a;
    for(i=2;i<b;i++)
    {
    a=b%i;
    if(a==0) printf("Число НЕпростое \n",b);
    else printf("Число простое \n",b);
    }
    return 0;
};
int massiv(int t[100])
{
    int n,i;
    printf("Введите колличество элементов массива: \n",n);
for(int i=0;i<n;i++)
{
    t[i]=rand()%201-200;
}
printf("массив: \n",t[i]);
};
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int i,a=0;
printf("Введите число: \n",a);
massiv(a[i]);
prost(a);
 
 
    return 0;
}
битый час пытаюсь исправить и не получается всё равно(
помогите плиз....>.<

Добавлено через 26 минут
up!!!!!!!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
11.01.2011, 18:33     error C2109: для индекса требуется массив или указатель #2
В 37 строке:

massiv(a);
romedal
 Аватар для romedal
53 / 53 / 1
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
11.01.2011, 18:33     error C2109: для индекса требуется массив или указатель #3
Цитата Сообщение от Айгулька Посмотреть сообщение
int i,a=0; //здесь 'а' - имя переменной
printf("Введите число: \n",a);
massiv(a[i]);
// а сдесь а - это уже имя массива, хоть 'а' объявлена выше как переменная, а не как массив
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
11.01.2011, 18:36     error C2109: для индекса требуется массив или указатель #4
А, не, фиг, а надо объявить как массив

Добавлено через 1 минуту

Не по теме:

опередили))

romedal
 Аватар для romedal
53 / 53 / 1
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
11.01.2011, 18:47     error C2109: для индекса требуется массив или указатель #5
C++
1
2
3
4
5
6
7
8
9
10
int massiv(int t[100]) // Здесь указано, что функция должна возвращать целое значение
{                            // но функция в конце так ничего и не возвращает, возможно надо объявить её как 
        int n,i;              //void massiv(int t[100]) 
        printf("Введите колличество элементов массива: \n",n);
for(int i=0;i<n;i++)
{
        t[i]=rand()%201-200;
}
printf("массив: \n",t[i]);
}; //здесь точка с запятой не нужны
Айгулька
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 7
11.01.2011, 19:27  [ТС]     error C2109: для индекса требуется массив или указатель #6
сделала всё как написали и теперь другая ошибка: error C2664: massiv: невозможно преобразовать параметр 1 из 'int' в 'int []'
блин целый день с этим заданием сижу(( пфффф

Добавлено через 1 минуту
up!!!!!!!

Добавлено через 2 минуты
блин может это поможет...задание изначально было такое: с использованием функций удалить из одномерного массива все простые числа....я отчаилась(
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
11.01.2011, 19:47     error C2109: для индекса требуется массив или указатель #7
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
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <locale.h>
 
int prost(int b)
{
    int i;
    for(i=2; i <= int(sqrt(double(b))); i++)
        if(!(b % i))
        {
            printf("\nЧисло НЕпростое %d\n", b);
            return 0;
        }
    printf("\nЧисло простое %d\n",b);
    return 1;
};
void massiv(int* t)
{
    int n, i;
    srand((unsigned)time(NULL));
    printf("Введите колличество элементов массива: \n");
    scanf("%d", &n);
    t = new int[n];
    printf("массив: \n");
    for(i=0;i<n;i++)
    {
        t[i]=rand()%201-200;
        printf("%d  ",t[i]);
    }
};
int main()
{
    setlocale(LC_ALL, "Russian");
 
    int *i = NULL,a;
    printf("Введите число: \n");
    scanf("%d", &a);
    massiv(i);
    prost(a);
    getch();
    delete[]i;
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2011, 21:10     error C2109: для индекса требуется массив или указатель
Еще ссылки по теме:

error C2109 C++
C++ Как получить ссылку на указатель или указатель на указатель в массиве?
Ошибка "error C2109: для индекса требуется массив или указатель" C++

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

Или воспользуйтесь поиском по форуму:
Айгулька
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 7
11.01.2011, 21:10  [ТС]     error C2109: для индекса требуется массив или указатель #8
спасииибо)
немножко подправила и рабоооотает)
Yandex
Объявления
11.01.2011, 21:10     error C2109: для индекса требуется массив или указатель
Ответ Создать тему
Опции темы

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