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

Undeclared (first use this function)

10.12.2016, 11:28. Показов 1410. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться в чём тут дело.
Код:
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <windows.h>
#include "time.h"
 
using namespace std;
 
int main( int argc, char** argv )
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout << " Âûâîä ðàíäîìíîé ìàòðèöû îò '0' äî '49': ";
    cout <<'\n';
    cout << endl;
    float size = 7; //x,y
    srand((unsigned)time(0));
    float b[size**][size**]; // [x] [y]
    float a[size**][size**] = {{ 0 }}, i = size / 2, j = i, number = 1;
    bool flag = false;
     a[ i ][ j-- ] = number++;
     b[ i ][ j ] = number++;
    cout << endl;
    for (int i=0; i<size; i++)
    {
        for (int j=0; j<size; j++)
        {
            b[i][j]=rand()%49;
 
            cout << std::setw( 3 ) << b[i][j] <<' ';
              
        }
        
        cout << endl;
        
    }
    while ( !flag )
     {
    while ( a[ i + 1 ][ j ] != 0 && !flag )
     {
        j--;
        if ( j < 0 )
        {
        flag = true;
        break;
        }
        a[ i ][ j ] = number++;
    }
    while ( a[ i ][ j + 1 ] != 0 && !flag )
    {
        i++;
        if ( i > size )
        {
        flag = true;
        break;
        }
        a[ i ][ j ] = number++;
    }
    while ( a[ i - 1 ][ j ] != 0 && !flag )
     {
        j++;
        if ( j > size)
         {
        flag = true;
        break;
        }
        a[ i ][ j ] = number++;
    }
    while ( a[ i ][ j - 1 ] != 0 && !flag )
     {
        i--;
        if ( i < 0 ) {
        flag = true;
        break;
        }
        a[ i ][ j ] = number++;
    }
    }
    cout << " Âûâîä îòñîðòèðîâàííîé ñïèðàëüíîé ìàòðèöû èç öåíòðà: ";
    cout <<'\n';
    cout << endl;
    for ( int i = 0; i < size; i++ )
     {
    for ( int j = 0; j < size; j++ )
    cout << std::setw( 3 ) << a[ i ][ j ] << ' ';
    cout << endl;
    }
    cout << endl;
    system( "pause" );
    return 0;
}
Добавлено через 2 минуты
Первый cout с текстом: " Вывод рандомной матрицы от '0' до '49': "
Второй cout с текстом: "Вывод отсортированной спиральной матрицы из центра"
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.12.2016, 11:28
Ответы с готовыми решениями:

' a ' и ' b ' undeclared (first use this function)
Помогите разобраться в чём тут дело. Заранее спасибо. Код: #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; ...

'stricmp' undeclared (first use this function)
Пытаюсь откомпилировать такой код из книги &quot;С++ для чайников&quot;: // DataSet - store associated data in // an array of...

'cout' undeclared (first use this function)
а у меня вот такая проблема. я начинающий. только-только начал. учусь по самоучителю. пишу на компиляторе Dev C++. написал код: # include...

16
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.12.2016, 13:56
Что за звёздочки в строках 18-19?
0
0 / 0 / 1
Регистрация: 24.04.2016
Сообщений: 37
12.12.2016, 13:59  [ТС]
Я так понимаю для объявления динамического массива в float требуется их писать,ибо без них вылетают ошибки
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
12.12.2016, 15:25
size не может быть float. Так сделай:
C++
1
2
3
    const int size = 7;
    float b[size][size];
    float a[size][size];
0
0 / 0 / 1
Регистрация: 24.04.2016
Сообщений: 37
12.12.2016, 15:53  [ТС]
Такая вот ошибка [Error] invalid types 'float [7][7][float]' for array subscript

Добавлено через 2 минуты
C++
1
2
3
4
const int size = 7; //u,m - size
    srand((unsigned)time(0));
    float b [size] [size];
    float a [size] [size] = {{ 0 }}, i = size / 2, j = i, number = 1;
Добавлено через 2 минуты
содержание строчки float a по идее не должно меняться так как от неё зависит построение спиральной матрицы как я понял

Добавлено через 5 минут
Похоже, что переменная "a" может быть только int или char, потому что если везде int или char то всё работает
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
12.12.2016, 16:06
http://rextester.com/IEMZT59480
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
94
95
96
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <windows.h>
#include "time.h"
 
using namespace std;
 
int main( int argc, char** argv )
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout << " Âûâîä Г°Г*Г*äîìГ*îé Г¬Г*òðèöû îò '0' äî '49': ";
    cout <<'\n';
    cout << endl;
    const size_t size = 7;
    srand((unsigned)time(0));
    float b[size][size]; 
    
    float a[size][size] = {{0}};
    size_t i = size / 2;
    size_t j = i;
    size_t number = 1;
    
    bool flag = false;
    a[i][j--] = number++;
    b[i][j] = number++;
    
    cout << endl;
    for (int i=0; i<size; i++)
    {
        for (int j=0; j<size; j++)
        {
            b[i][j]=rand()%49;
 
            cout << std::setw( 3 ) << b[i][j] <<' ';
              
        }
        
        cout << endl;
        
    }
    while ( !flag )
     {
    while ( a[ i + 1 ][ j ] != 0 && !flag )
     {
        j--;
        if ( j < 0 )
        {
        flag = true;
        break;
        }
        a[ i ][ j ] = number++;
    }
    while ( a[ i ][ j + 1 ] != 0 && !flag )
    {
        i++;
        if ( i > size )
        {
        flag = true;
        break;
        }
        a[ i ][ j ] = number++;
    }
    while ( a[ i - 1 ][ j ] != 0 && !flag )
     {
        j++;
        if ( j > size)
         {
        flag = true;
        break;
        }
        a[ i ][ j ] = number++;
    }
    while ( a[ i ][ j - 1 ] != 0 && !flag )
     {
        i--;
        if ( i < 0 ) {
        flag = true;
        break;
        }
        a[ i ][ j ] = number++;
    }
    }
    cout << " Âûâîä îòñîðòèðîâГ*Г*Г*îé Г±ГЇГЁГ°Г*ëüГ*îé Г¬Г*òðèöû ГЁГ§ Г¶ГҐГ*ГІГ°Г*: ";
    cout <<'\n';
    cout << endl;
    for ( int i = 0; i < size; i++ )
     {
    for ( int j = 0; j < size; j++ )
    cout << std::setw( 3 ) << a[ i ][ j ] << ' ';
    cout << endl;
    }
    cout << endl;
    //system( "pause" );
}
0
0 / 0 / 1
Регистрация: 24.04.2016
Сообщений: 37
12.12.2016, 16:11  [ТС]
Сейчас попробую
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
12.12.2016, 16:14
Все переменные, которые используются как индексы, должны быть целыми. У тебя это i и j.
0
0 / 0 / 1
Регистрация: 24.04.2016
Сообщений: 37
12.12.2016, 16:14  [ТС]
Работает, но выводит только рандомный массив, а мне ещё нужно вывести спиральный
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
12.12.2016, 16:15
Цитата Сообщение от nmcf Посмотреть сообщение
индексы, должны быть целыми
size_t
0
0 / 0 / 1
Регистрация: 24.04.2016
Сообщений: 37
12.12.2016, 16:18  [ТС]
То есть с float вообще никак?

Добавлено через 1 минуту
Я чайник в C++ раньше работал только с Delphi и то недолго, поэтому не понимаю
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
12.12.2016, 16:20
Цитата Сообщение от YoungOldFag Посмотреть сообщение
То есть с float вообще никак?
Undeclared (first use this function)
0
0 / 0 / 1
Регистрация: 24.04.2016
Сообщений: 37
12.12.2016, 16:28  [ТС]
Разобрался, работает только с int, я забыл что int целочисленный.

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
 const int size = 7; //u,m - size
    srand((unsigned)time(0));
    float b [size] [size];
    float a [size] [size] = {{ 0 }};
    int i = size / 2; 
    int j = i; 
    int number = 1;
зато возникла новая проблема без константы в int size верхняя строчка матрицы превращается в набор дробных чисел. как это решить?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
12.12.2016, 18:49
Чем тебе константа мешает?
0
0 / 0 / 1
Регистрация: 24.04.2016
Сообщений: 37
13.12.2016, 14:32  [ТС]
Мне нравится, не нравится преподу

Добавлено через 5 минут
Просто подскажите как исправить верхнюю строчку спирали
0
0 / 0 / 1
Регистрация: 24.04.2016
Сообщений: 37
13.12.2016, 14:35  [ТС]
вот скрин
Миниатюры
Undeclared (first use this function)  
0
0 / 0 / 1
Регистрация: 24.04.2016
Сообщений: 37
13.12.2016, 14:58  [ТС]
Поправлюсь, мне не мешает, мешает преподу

Добавлено через 29 секунд
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <windows.h>
#include <time.h>
using namespace std;
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout << " Вывод рандомной матрицы от '0' до '49': ";
    cout <<'\n';
    cout << endl;
    srand((unsigned)time(0));
    int size = 7; 
    float b [size] [size];
    float a [size] [size] = {{ 0 }};
    int i = size / 2; 
    int j = i; 
    int number = 1;
    bool flag = false;
    a[ i ][ j-- ] = number++;
    a[ i ][ j ] = number++;
    cout << endl;
    for (int i=0; i<size; i++)
    {
        for (int j=0; j<size; j++)
        {
            b[i][j]=rand()%49;
            cout << std::setw( 3 ) << b[i][j] <<' ';     
        }
        cout << endl; 
    }
    while ( !flag )
     {
    while ( a[ i + 1 ][ j ] != 0 && !flag )
     {
        j--;
        if ( j < 0 )
        {
        flag = true;
        break;
        }
        a[ i ][ j ] = number++;
    }
    while ( a[ i ][ j + 1 ] != 0 && !flag )
    {
        i++;
        if ( i > size )
        {
        flag = true;
        break;
        }
        a[ i ][ j ] = number++;
    }
    while ( a[ i - 1 ][ j ] != 0 && !flag )
     {
        j++;
        if ( j > size)
        {
        flag = true;
        break;
        }
        a[ i ][ j ] = number++;
    }
    while ( a[ i ][ j - 1 ] != 0 && !flag )
     {
        i--;
        if ( i < 0 ) 
        {
        flag = true;
        break;
        }
        a[ i ][ j ] = number++;
    }
    }
    cout << " Вывод отсортированной спиральной матрицы из центра: ";
    cout <<'\n';
    cout << endl;
    for (int i = 0; i < size; i++)
    {
    for (int j = 0; j < size; j++)
    cout << std::setw( 3 ) << a[ i ][ j ] << ' ';
    cout << endl;
    }
    cout << endl;
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.12.2016, 14:58
Помогаю со студенческими работами здесь

`endl' undeclared (first use in this function)
#include &lt;stdio.h&gt; #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; void main() { double (*pf)(double x); ...

[DEV C++]`string' undeclared (first use this function)
Пробую объявить строку а он пишет 17 C:\Users\Íàäæäà\Desktop\Òåëåôîííûå_Íîìåðà.cpp `string' undeclared (first use this function) Все...

Use of undeclared identifier 'gold', No matching function for call to 'main'
Не могу понять, что я делаю не так, когда пишу код. Одни и те же ошибки. Как их исправить? Среда разработки: xCode Скриншоты ошибок:...

Undeclared (first use in this function)
Начал изучать С. Читаю книгу Кернигана, Ричи. Столкнулся с проблемой. #include &lt;stdio.h&gt; /* копирование ввода на вывод; 2-я...

`random' undeclared (first use this function)
Проблемы в простом коде, а именно: # include &lt;stdio.h&gt; # include &lt;stdlib.h&gt; # include &lt;conio.h&gt; const int N=10; main () { ...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru