Jump to content

Параллельные массивы в DEV C++


Recommended Posts

Возникает ошибка "\main.cpp `max' undeclared (first use this function)", хотя массив описан.

#include <cstdlib>

#include <iostream>

using namespace std;

int room[7]={102, 107, 109, 112, 115, 116, 123};

int max[7]={12, 43, 23, 12, 20, 15, 16};

int main(int argc, char *argv[])

{

int index, answer, choice, num, rooms, flag, found;

rooms=7;

puts("1. Pokazat vmestimost vseh komnat.\n");

puts("2. Opredelit vmestimost opredelennoi komnati.\n");

puts("3. Naiti komnatu opredelennoi vmestimosti.\n");

printf("Vvedite vash vibor ot 1 do 3: ");

scanf("%d", &choice);

putchar('\n');

switch(choice)

{

case 1:

for (index=0; index<7; index++)

printf("Komnata #%d rasschitana na %d mest.\n", room[index], max[index]);

break;

case 2:

printf("Vvedite nomer komnati: ");

scanf("%d", &num);

index=0;

found=0;

while (!found && index<rooms)

if (room[index]==num)

found=1;

else

index++;

if (!found)

puts("Komnati s takim nomerom net v spiske.\n");

else

printf("Komnata #%d rasschitana na %d mest.\n", room[index], max[index]);

break;

case 3:

flag=0;

printf("Vvedite minimalnoe kolichestvo mest: ");

scanf("%d", &num);

for (index=0; index<rooms; index++)

if (max[index]>=num)

{

flag=1;

printf("Komnata #%d rasschitana na %d mest.\n", room[index], max[index]);

}

if (flag==0)

puts("Komnat s takim kolichestvom mest net.\n");

break;

default:

puts("Nepravilnyi vvod.");

}

system("PAUSE");

return EXIT_SUCCESS;

}

Link to comment
Share on other sites

little_greg:

Конфликт имен. Убери из программы строку using namespace std; или дай массиву max какое-нибудь не столь громкое имя.

Или можешь перенести объявление массивов room и max внутрь функции main. Тогда имя max будет переопределено внутри функции.

Edited by Тролль
Link to comment
Share on other sites

Guest Хексем

А как-то можно узнать какое имя можно использовать, а какое нет, чтобы в будущем такого не было.

У нас сопадений не должно быть с ключевыми словами и именами функций.

С первым все понятно, а про функции... какие-то ты знаешь, какие-то имена можно проверить на наличие в библиотеке...

Я думаю все :bye1:

Link to comment
Share on other sites

little_greg:

В случае конфликта компилятор сообщит. Но на всякий случай старайся объявлять имена не на глобальном уровне, а внутри функции, особенно имена, подозрительные на совпадение с именами стандартных функций или констант.

Link to comment
Share on other sites

  • 4 weeks later...
Guest Хексем

Задача с обычными массивами.

Вводится размерность массива a, массив а заполняется случаными числами, далее в массив b записывается максимальный, минимальный элементы массива а, и сумма элементов массива а.

Посмотрите пожалуйста праивльность нахождения максимального и минимального элементов, не всегда првильно работает...

#include <iostream.h>#include <time.h>#include <math.h>int main(){srand(unsigned(time(NULL)));   int N=50, n;cin >> n;float a[N], b[3];cout << "\nMass A: \n\n";for (int i=0; i<n; i++) {a[i]=rand()%201-100;cout << a[i] << " "; }b[0]=a[0];for (int i=0; i<n; i++) if (a[i] < a[i+1]) b[0]=a[i+1];b[1] = a[0];for (int i=0; i<n; i++) if (a[i] > a[i+1]) b[1]=a[i+1];b[2]=0;for(int i=0; i<n; i++)b[2]+=a[i];for(int i=0; i<3; i++)cout << endl << b[i] << " ";cout << "\n";system("pause");  return (0);}
Link to comment
Share on other sites

Guest Хексем

Хексем:

if (a < a[i+1]) b[0]=a[i+1];

if (b[0] < a) b[0]=a;

if (a > a[i+1]) b[1]=a[i+1];

if (b[1] > a) b[1]=a;

хм, как все просто, благодарю :D

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...