Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Nasdfgh
0 / 0 / 0
Регистрация: 08.10.2009
Сообщений: 37
#1

Массив С++ - C++

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

Надо написать программу которая инициализирует массив и считывает сколько в нём элементов
Функция для считывания xcount
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2011, 18:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив С++ (C++):

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

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

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

Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. - C++
Есть текстовый файл, в нем 3 столбца чисел (число строк заранее неизвестно). Напишите пожалуйста код, чтобы первый столбец записывался в...

с клавиатуры ввести массив,во второй массив записать нечетные элементы из первого - C++
с клавиатуры ввести массив,во второй записать нечетные элеиенты из первого.В третий массив записать четные элементы, стоящие на нечетных...

Переписать положительные элементы массива K,кратные пяти в массив M,а остальные-в массив Q. - C++
Дан массив K(N).Переписать положительные элементы массива K,кратные пяти в массив M,а остальные-в массив Q.

15
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
06.06.2011, 18:15 #2
уже сто раз до тебя подобные задачи здесь писали и выкладывали. Пользуйся поиском
0
Nasdfgh
0 / 0 / 0
Регистрация: 08.10.2009
Сообщений: 37
06.06.2011, 18:17  [ТС] #3
Докажи
Кинь ссылку или скопируй в эту тему
0
diagon
Higher
1932 / 1198 / 49
Регистрация: 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
Nasdfgh
0 / 0 / 0
Регистрация: 08.10.2009
Сообщений: 37
06.06.2011, 18:32  [ТС] #5
Я просто только начал учить С++ можно с комментариями а так огромное спасибо
0
diagon
Higher
1932 / 1198 / 49
Регистрация: 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
Nasdfgh
0 / 0 / 0
Регистрация: 08.10.2009
Сообщений: 37
06.06.2011, 18:37  [ТС] #7
Только два вопроса:
-Зачем возвращать сount на 2
-что такое std::
0
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.06.2011, 18:42 #8
Цитата Сообщение от Nasdfgh Посмотреть сообщение
Только два вопроса:
-Зачем возвращать сount на 2
-что такое std::
1) а пес его знает=) Если объявлять массив, как указано в мейне, то по указателю после массива стабильно лежит нуль. Но если в массиве попадается нуль, то возвращает его позицию. Также, если массив объявлен динамически, то такое решение не работает. Так что полноценным назвать его нельзя. Возможно кто-то выложит работающее, интересно на него поглядеть=)
2)пространство имен. Его многие игнорируют, когда пишут using namespace std;
0
dihlofos
Бродяга
304 / 258 / 17
Регистрация: 27.08.2010
Сообщений: 553
06.06.2011, 18:44 #9
diagon, я вот если честно не понял ни задачи, ни способ вашего решения)) Можете пояснить, докуда мы сдвинемся при условии "пока элемент массива не равен нулю, увеличиваем счетчик"?
0
Nasdfgh
0 / 0 / 0
Регистрация: 08.10.2009
Сообщений: 37
06.06.2011, 18:47  [ТС] #10
1)Да я понял о чем ты
Да только я хотел сделать что б этот массив не был литой а вводился а потом считывалось сколько элементов
2)Точно я жертва using namespace std;
0
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.06.2011, 18:48 #11
dihlofos, В функцию xcount передается массив(очевидно, что без указания размера, иначе какой смысл у этой функции), нужно найти размер массива.
Я просто заметил, что если объявлять массив так arr[]={...}, то после массива будет лежать нуль. По крайней мере в gcc так. Если создать массив динамически, то это не работает
Вам точно нужно использовать функцию? Я как-то начинаю подозревать, что это невозможно.
0
voral
512 / 492 / 87
Регистрация: 16.03.2008
Сообщений: 2,291
06.06.2011, 18:50 #12
Ну когда уже по теме можно будет понять что хочется. Вот точно такая же тема сегодня, там еще один вариант ответа Очень просто
0
dihlofos
Бродяга
304 / 258 / 17
Регистрация: 27.08.2010
Сообщений: 553
06.06.2011, 18:53 #13
Цитата Сообщение от diagon Посмотреть сообщение
Я просто заметил, что если объявлять массив так arr[]={...}, то после массива будет лежать нуль. По крайней мере в gcc так. Если создать массив динамически, то это не работает
Ну вот у меня gcc и там нифига не нуль)) Ваш пример у меня выдаёт 13. Вот если бы это char[] был, заканчивающийся '\0'....
0
Nasdfgh
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
diagon
Higher
1932 / 1198 / 49
Регистрация: 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
06.06.2011, 18:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2011, 18:59
Привет! Вот еще темы с ответами:

Сжать массив, выбросив из него отрицательные элементы - массив становится пустым - C++
Задачка такая: Разработать программу, обеспечивающую ввод с клавиатуры целых чисел и сохранение их в одномерном массиве. Ввод...

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька - C++
всем привет. народ помогите с прогой, конкретно с функцией sort (65 строка), она должна двухмерный массив перевести построчно в одномерный...

Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив - C++
ввести двумерный массив I . найти номера столбцов с положительными элементами и записать их в одномерный массив, отобразить его на экране. ...

Можно ли в классе создавать массив переменной длинны. Например динамический массив? - C++
Динамические массивы привлекают больше. :)


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

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

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