Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2013, 19:52   #1
dima95
 
Регистрация: 14.10.2013
Сообщений: 8
По умолчанию Помогите разобраться с ошибкой: error: invalid types 'int[int]' for array subscript

В массиве В(12) все нецелые элементы из отрезка [a,b] занесите в массив С и найдите минимальный элемент массива С.
Код:
#include <iostream>
#include <cmath>

using namespace std;
int main()
{
float B[12];
cout <<"Vvedite massiv\n";
for(int i=0;i<12;i++)
cin>>B[i];
cout <<"Vvedite interval\n";
int a,b;
cin>>a>>b;
int C[b-a];
for (int i=b-a,k=0;i<b;i++,k++)
if (int(B[i])!=B[i])
C[k]=B[i];
float min=C[0];
for (int i=0;i<(b-a);i++)
{
if(C[i]<min)
min=C[i];
}
cout<<min;
return 0;
}
error: invalid types 'int[int]' for array subscript

Последний раз редактировалось dima95; 14.10.2013 в 23:45.
dima95 вне форума Ответить с цитированием
Старый 15.10.2013, 05:41   #2
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

вводите float загоняете в int
Код:
float B[12];
int C[b-a];
C[k]=B[i];
___________________________________ ________________________________
Представьте себе при таком описании границы a=1, b=6
Код:
(int i=b-a,k=0;i<b;i++,k++)
получится что у вас i от 5 до 6
___________________________________ ________________________________
Почему здесь такая граница? Когда кол-во элементов у нас будет равное k.
Код:
for (int i=0;i<(b-a);i++)
___________________________________ ________________________________
Вообщем вот код:
Код:
#include <iostream>
#include <cmath>

using namespace std;
int main()
{//описывайте сначала переменные! а не в коде, чтобы не путаться и не объявлять бедную i по 100500 раз
float B[12];
float C[12];
int i,a,b,k;
float min;

cout <<"Vvedite massiv\n";
for(i=0;i<12;i++)
    cin>>B[i];
    
cout <<"Vvedite interval\n";
cin>>a>>b;

for (i=a,k=0;i<b;i++)
    if (int(B[i])!=B[i])
    {
        C[k]=B[i];
        k++;
    }

min=C[0];
for (i=1;i<k;i++)
    {
        if(C[i]<min)
        min=C[i];
    }
cout<<min;
return 0;
}
P.S. Советую описывать переменные в начале, обращая внимание на типы
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!

Последний раз редактировалось SaLoKiN; 15.10.2013 в 05:49.
SaLoKiN вне форума Ответить с цитированием
Старый 15.10.2013, 22:17   #3
dima95
 
Регистрация: 14.10.2013
Сообщений: 8
По умолчанию

Большое спасибо за советы))
я пока только учусь..
dima95 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти минимальный и максимальный элементы массива Х и поменять их в массиве местами. Элементы массива вычисляются по формуле Xi=(( Милашечка Помощь студентам 0 26.05.2013 13:01
умножить все элементы массива на минимальный AlexP777 Паскаль, Turbo Pascal, PascalABC.NET 2 23.04.2013 22:51
Все элементы выше главной диагонали квадратной матрицы, заменить на минимальный элемент (VisualBasic) ride013 Помощь студентам 4 03.05.2011 20:40
найти минимальный элемент в каждой строке матрицы и записать все минимальные элементы в отдельный массив W_P Помощь студентам 6 28.12.2007 00:24