Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 08.07.2019
Сообщений: 38
1

с++ где тут ошибка

29.08.2019, 22:28. Показов 1199. Ответов 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
#include <iostream>
using namespace std;
 
template<typename T,int N> 
 
int arr_size(T (&arr1)[N])
{
   size_t size;
   size=sizeof(arr1)/sizeof(arr1[0]);  
    return size;
}
 
void print(int mas[])
{
for(int i=0;i<arr_size(mas);i++)
    cout<<mas[i]<<" ";
 
}
 
int main()
{
int arr[] =
{54, 70, 75, 63, 17, 59, 87, 16, 93, 81, 60, 67, 90, 53, 88, 9, 61, 8, 96, 98, 12, 34, 66, 76, 38, 55, 58, 27, 92, 45, 41, 4, 20, 22, 69, 77, 86, 35, 19, 32, 49, 15, 29, 23, 83, 95, 25, 91, 33, 47, 24, 62, 13, 42, 73, 44, 78, 72, 7, 5, 10, 48, 71, 18, 39, 97, 64, 79, 51, 74, 31, 37, 57, 30, 94, 80, 28, 1, 56, 85, 46, 100, 82, 40, 26, 21, 68, 43, 14, 3, 65, 99, 89, 52, 84, 36, 2, 6, 11, 50};
 
print(arr);
 
 
return 0;
}
Добрый вечер,подскажите почему не могу обратится к ф-ции arr_size() внутри print();
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2019, 22:28
Ответы с готовыми решениями:

Где тут ошибка?
Обьясните, что неправильно в этой программе. #include &lt;iostream&gt; using namespace std; ...

Где тут ошибка то?
#include &lt;iostream&gt; using namespace std; int main() { int b=1, c=0; while (1) { ...

Где тут ошибка, подскажите плз!
#include &quot;stdafx.h&quot; #include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace std; void main()...

Где тут ошибка? Программа сортировки массива по возрастанию
программа сортирует массив по возрастанию. кусок кода который выполняет сортировку взял с инета. но...

4
221 / 148 / 79
Регистрация: 14.03.2016
Сообщений: 459
29.08.2019, 22:36 2
Потому что sizeof(arr1) дает размер указателя на int, а не размер константного массива в байтах. Если хотите знать размер массива, то либо создайте свой класс-обертку, либо используйте уже то, что было написано до вас.
1
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
29.08.2019, 22:49 3
Лучший ответ Сообщение было отмечено maksims20515896 как решение

Решение

Цитата Сообщение от maksims20515896 Посмотреть сообщение
Добрый вечер,подскажите почему не могу обратится к ф-ции arr_size() внутри print();
Сделай
C++
1
2
3
4
5
6
7
template <typename T>
void print(T &&mas)
{
   for(int i=0;i<arr_size(mas);i++)
       cout<<mas[i]<<" ";
 
}
1
494 / 208 / 70
Регистрация: 27.05.2016
Сообщений: 554
29.08.2019, 22:49 4
Цитата Сообщение от maksims20515896 Посмотреть сообщение
подскажите почему не могу обратится к ф-ции arr_size() внутри print()
void print(int arr[]) {} это тоже самое что void print(int *arr) {}. А шаблонная функция arr_size принимает своим параметром ссыску на массив.
1
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
29.08.2019, 22:51 5
C++
1
2
3
4
5
template<typename T, size_t N> 
size_t arr_size(T (&arr1)[N])
{
     return N;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2019, 22:51

Помощь в написании контрольных, курсовых и дипломных работ здесь.

присваивание char - где тут может быть ошибка?
Есть простая функция, обратную строку должна выдавать, а вместо этого передает &quot;необработаное...

Собственно где тут ошибка? почему я не могу ввести правельно данные. Реализация класса
#include &lt;iostream&gt; using namespace std; class Person { private: int ID; char *Name;...

Где тут отличия?
Добрый вечер. Вот есть 2 исходника с одинаковым кодом, но с разными конструкциями оператора...

Запуская программу ни какой реакции нету, где тут подвох?
#ifdef USE_PRECOMPILED_HEADER #include &lt;iostream&gt; #include &lt;cstdlib&gt; #define N 1024 using...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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