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

Массив С++

06.06.2011, 18:14. Показов 1284. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Надо написать программу которая инициализирует массив и считывает сколько в нём элементов
Функция для считывания xcount
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2011, 18:14
Ответы с готовыми решениями:

Массив: Преобразовать массив, прибавив к четным числам, входящим в массив, значение первого элемента.
Есть задача С клавиатуры вводятся элементы целочисленного массива размера N. Преобразовать его,...

Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать
Добрый Вечер! Написал первую часть программы по этому заданию"Ввести массив А. В массив В перенести...

Массив: Как скопировать двумерный массив в другой массив?
Как скопировать двумерный массив в другой массив?

Дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько раз оно входит в массив...
помогите!!!((( дан массив целых чисел,произвести для него следующие операции: для каждого из чисел...

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
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.06.2011, 18:28 4
Не такая уж и тривиальная задача на самом деле=)
C++
1
2
3
4
5
6
7
8
9
10
11
#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);
    return 0;
}
Только не работает, если попадается нуль
Если есть другие способы решения, то интересно будет на них посмотреть.
1
0 / 0 / 0
Регистрация: 08.10.2009
Сообщений: 37
06.06.2011, 18:32  [ТС] 5
Я просто только начал учить С++ можно с комментариями а так огромное спасибо
0
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.06.2011, 18:35 6
Задачка-то далеко не для начинающих о_О
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
unsigned xcount (const int * arr){  //unsigned-беззнаковый int
        unsigned count=0;  //объявляем счетчик
        while (arr[count++]); //пока элемент массива не равен нулю, увеличиваем счетчик
        return count-2; //возвращаем счетчик, уменьшенный на 2
}
int main(){
        int arr[]={1,2}; //инициализируем
        std::cout << xcount(arr); //выводим
        return 0;
}
1
0 / 0 / 0
Регистрация: 08.10.2009
Сообщений: 37
06.06.2011, 18:37  [ТС] 7
Только два вопроса:
-Зачем возвращать сount на 2
-что такое std::
0
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.06.2011, 18:42 8
Цитата Сообщение от Nasdfgh Посмотреть сообщение
Только два вопроса:
-Зачем возвращать сount на 2
-что такое std::
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
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.06.2011, 18:48 11
dihlofos, В функцию xcount передается массив(очевидно, что без указания размера, иначе какой смысл у этой функции), нужно найти размер массива.
Я просто заметил, что если объявлять массив так arr[]={...}, то после массива будет лежать нуль. По крайней мере в gcc так. Если создать массив динамически, то это не работает
Вам точно нужно использовать функцию? Я как-то начинаю подозревать, что это невозможно.
0
2304 / 1225 / 246
Регистрация: 16.03.2008
Сообщений: 5,840
Записей в блоге: 2
06.06.2011, 18:50 12
Ну когда уже по теме можно будет понять что хочется. Вот точно такая же тема сегодня, там еще один вариант ответа Очень просто
0
Бродяга
314 / 268 / 56
Регистрация: 27.08.2010
Сообщений: 553
06.06.2011, 18:53 13
Цитата Сообщение от diagon Посмотреть сообщение
Я просто заметил, что если объявлять массив так arr[]={...}, то после массива будет лежать нуль. По крайней мере в gcc так. Если создать массив динамически, то это не работает
Ну вот у меня 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
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.06.2011, 18:59 15
Цитата Сообщение от dihlofos Посмотреть сообщение
Ну вот у меня gcc и там нифига не нуль)) Ваш пример у меня выдаёт 13. Вот если бы это char[] был, заканчивающийся '\0'....
Ну идею я именно из чара взял=)
А вот что выводит мой 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
Цитата Сообщение от dihlofos Посмотреть сообщение
Вот если бы это char[] был, заканчивающийся '\0'....
Ну, строго говоря, даже char[] не обязан заканчиваться нулём. Нулём должна заканчиваться ASCIIZ-строка

Цитата Сообщение от Nasdfgh Посмотреть сообщение
Дело в том что мне надо посчитать элементы массива предположим mass[80] до нулевого символа
Если размер надо определить до нулевого символа, то стоило это отметить в исходном задании
0
06.06.2011, 19:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2011, 19:20
Помогаю со студенческими работами здесь

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

Дан массив целых чисел а(12). Переписать в массив х четные, а в массив у нечетные элементы массива а
Помогите пожалуйста решить эту задачу. Массив a выводит на печать. Я пишу a mod 2 = 0 , а он мне 41...

Сформировать массив, который будет состоять из чисел, входящих как в массив A, так и в массив B
Задание: На основе исходных массивов A и B (n и m – рабочие размеры массивов) сформировать массив...

Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а отрицательные в массив C
Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru