0 / 0 / 0
Регистрация: 08.10.2009
Сообщений: 37
|
|
1 | |
Массив С++06.06.2011, 18:14. Показов 1284. Ответов 15
Метки нет (Все метки)
Надо написать программу которая инициализирует массив и считывает сколько в нём элементов
Функция для считывания xcount
0
|
06.06.2011, 18:14 | |
Ответы с готовыми решениями:
15
Массив: Преобразовать массив, прибавив к четным числам, входящим в массив, значение первого элемента. Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать Массив: Как скопировать двумерный массив в другой массив? Дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько раз оно входит в массив... |
187 / 174 / 18
Регистрация: 22.03.2010
Сообщений: 612
|
|
06.06.2011, 18:15 | 2 |
уже сто раз до тебя подобные задачи здесь писали и выкладывали. Пользуйся поиском
0
|
0 / 0 / 0
Регистрация: 08.10.2009
Сообщений: 37
|
|
06.06.2011, 18:17 [ТС] | 3 |
Докажи
Кинь ссылку или скопируй в эту тему
0
|
Higher
|
||||||
06.06.2011, 18:28 | 4 | |||||
Не такая уж и тривиальная задача на самом деле=)
Если есть другие способы решения, то интересно будет на них посмотреть.
1
|
0 / 0 / 0
Регистрация: 08.10.2009
Сообщений: 37
|
|
06.06.2011, 18:32 [ТС] | 5 |
Я просто только начал учить С++ можно с комментариями а так огромное спасибо
0
|
Higher
|
||||||
06.06.2011, 18:35 | 6 | |||||
Задачка-то далеко не для начинающих о_О
1
|
0 / 0 / 0
Регистрация: 08.10.2009
Сообщений: 37
|
|
06.06.2011, 18:37 [ТС] | 7 |
Только два вопроса:
-Зачем возвращать сount на 2 -что такое std::
0
|
Higher
|
|
06.06.2011, 18:42 | 8 |
1) а пес его знает=) Если объявлять массив, как указано в мейне, то по указателю после массива стабильно лежит нуль. Но если в массиве попадается нуль, то возвращает его позицию. Также, если массив объявлен динамически, то такое решение не работает. Так что полноценным назвать его нельзя. Возможно кто-то выложит работающее, интересно на него поглядеть=)
2)пространство имен. Его многие игнорируют, когда пишут using namespace std;
0
|
Бродяга
314 / 268 / 56
Регистрация: 27.08.2010
Сообщений: 553
|
|
06.06.2011, 18:44 | 9 |
diagon, я вот если честно не понял ни задачи, ни способ вашего решения)) Можете пояснить, докуда мы сдвинемся при условии "пока элемент массива не равен нулю, увеличиваем счетчик"?
0
|
0 / 0 / 0
Регистрация: 08.10.2009
Сообщений: 37
|
|
06.06.2011, 18:47 [ТС] | 10 |
1)Да я понял о чем ты
Да только я хотел сделать что б этот массив не был литой а вводился а потом считывалось сколько элементов 2)Точно я жертва using namespace std;
0
|
Higher
|
|
06.06.2011, 18:48 | 11 |
dihlofos, В функцию xcount передается массив(очевидно, что без указания размера, иначе какой смысл у этой функции), нужно найти размер массива.
Я просто заметил, что если объявлять массив так arr[]={...}, то после массива будет лежать нуль. По крайней мере в gcc так. Если создать массив динамически, то это не работает Вам точно нужно использовать функцию? Я как-то начинаю подозревать, что это невозможно.
0
|
06.06.2011, 18:50 | 12 |
Ну когда уже по теме можно будет понять что хочется. Вот точно такая же тема сегодня, там еще один вариант ответа Очень просто
0
|
Бродяга
314 / 268 / 56
Регистрация: 27.08.2010
Сообщений: 553
|
|
06.06.2011, 18:53 | 13 |
Ну вот у меня gcc и там нифига не нуль)) Ваш пример у меня выдаёт 13. Вот если бы это char[] был, заканчивающийся '\0'....
0
|
0 / 0 / 0
Регистрация: 08.10.2009
Сообщений: 37
|
|
06.06.2011, 18:54 [ТС] | 14 |
Да я создал 2 темы не хотели отвечать не на одну (нетерпелив)
Дело в том что мне надо посчитать элементы массива предположим mass[80] до нулевого символа я пытался но что то не работает Код
int xcount(int mas[]) { int m = 0; int s = 0; int i = 0; while(mas[i]) { if(mas[i+1] == mas[i]) { s++; if(s >= 2) s = 0; m++; } i++; } return m; }
0
|
Higher
|
|
06.06.2011, 18:59 | 15 |
Ну идею я именно из чара взял=)
А вот что выводит мой gcc Код
diagon@shadeware:~$ cat test.cpp #include <iostream> unsigned xcount (const int * arr){ unsigned count=0; while (arr[count++]); return count-2; } int main(){ int arr[]={1,2}; std::cout << xcount(arr) << std::endl; return 0; } diagon@shadeware:~$ g++ test.cpp diagon@shadeware:~$ ./a.out 2 diagon@shadeware:~$ cat test.cpp #include <iostream> unsigned xcount (const int * arr){ unsigned count=0; while (arr[count++]); return count-2; } int main(){ int arr[]={1,1,1,1,1,1}; std::cout << xcount(arr) << std::endl; return 0; } diagon@shadeware:~$ g++ test.cpp diagon@shadeware:~$ ./a.out 6 diagon@shadeware:~$ Nasdfgh, А можно полное задание? Просто я сомневаюсь как-то, что вам нужно делать именно это. И вообще, обычно массивы передают вместе с их размером.
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
06.06.2011, 19:20 | 16 |
Ну, строго говоря, даже char[] не обязан заканчиваться нулём. Нулём должна заканчиваться ASCIIZ-строка
Если размер надо определить до нулевого символа, то стоило это отметить в исходном задании
0
|
06.06.2011, 19:20 | |
06.06.2011, 19:20 | |
Помогаю со студенческими работами здесь
16
Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный массив Y Дан массив целых чисел а(12). Переписать в массив х четные, а в массив у нечетные элементы массива а Сформировать массив, который будет состоять из чисел, входящих как в массив A, так и в массив B Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а отрицательные в массив C Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |