Задача такая:
Составить подпрограмму
определения числа одинаковых целых чисел k в серии длиной больше L в одномерном массиве X = (х1,
х2, ..хn). Используя ее, найти серию s максимальной длины в массиве Х = [1, 0, 0, 0, 1, 1,
1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1].
Здесь вроде как нужно использовать size.
Поможете? Программу написал без size и выдает не совсем то, что надо.
Вот программа:
#include <iostream.h>
int main()
{ const int r= 19;
char X[r] = { 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1 };
int i, L, S1= 0, S0= 0;
for(i=0; i< r;)
{
L= 0;
while( X[i]== 0)
{ L++;
i++;}
if(L > S0)
S0= L;
L= 0;
while(X[i]== 1)
{ L++;
i++;}
if(L > S1 )
S1= L;
}
cout<< "S1"<< S1<<endl;
cout<< "S0"<< S0<<endl;
return 0;
}
Выдает 5, 3
Другие языки программирования и технологии
Для чего нужно SIZE, Sizeof и как этим пользоваться? С++
Результат оператора sizeof имеет тип size_t, целочисленный тип, определенный во включаемом файле stddef.h. Он позволяет избежать жесткого прописывания размеров данных, которые часто зависят от платформы. Например:
int x[] = { 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1 }; // размер массива не задан явно
size_t size = sizeof(x) / sizeof(int); // здесь размер вычисляется
for (int i = 0; i < size; ++i) cout << x[i]; // здесь используется
int x[] = { 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1 }; // размер массива не задан явно
size_t size = sizeof(x) / sizeof(int); // здесь размер вычисляется
for (int i = 0; i < size; ++i) cout << x[i]; // здесь используется
Alexey J
то есть все таки size здесь не нужен? если нет, то тогда в чем ошибка?
Чо за SIZE я хз. sizeof возвращает значение типа size_t число байт, которое требуется в памяти переменной типа переданного аргументом. Каким макаром можно sizeof применить к твоей задаче - ума не приложу, ты, скорее всего, не туда смотришь.
Что бы определить размер (в байтах) переменной.
====================
#include <iostream>
using namespace std;
int main(){
int X[] = {1, 0, 0, 0, 1, 1,
1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1};
int s,k,counter,max,size;
max = 0;
counter = 1;
size = sizeof(X)/sizeof(int);
for(int i(1); i < size; i++){
if(X[i] == X[i-1]) counter++;
else counter = 1;
if(counter > max) { max = counter; k = X[i]; }
}
for(int i(1); i < size; i++) cout << X[i] << ' ';
cout << endl;
cout << "k = " << k << endl;
cout << "max = " << max << endl;
system("pause > nul");
return 0;
}
====================
#include <iostream>
using namespace std;
int main(){
int X[] = {1, 0, 0, 0, 1, 1,
1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1};
int s,k,counter,max,size;
max = 0;
counter = 1;
size = sizeof(X)/sizeof(int);
for(int i(1); i < size; i++){
if(X[i] == X[i-1]) counter++;
else counter = 1;
if(counter > max) { max = counter; k = X[i]; }
}
for(int i(1); i < size; i++) cout << X[i] << ' ';
cout << endl;
cout << "k = " << k << endl;
cout << "max = " << max << endl;
system("pause > nul");
return 0;
}
Похожие вопросы
- C++ Везде написано, что sizeof() с массивом в качестве аргумента возвращает полный размер. А в данной функции не так.
- C# Почему const uint SIZE не воспринимается массивом, как константа, а int работает? Погрешности с double
- Что нужно знать верстальщику и программисту, чтобы он пользовался спросом?
- Помогите написать программу на С++ которая в массиве чисел из Size элементов находит такую непрерывную
- Сейчас еще кто-нибудь пользуется браузером Explorer 6 ? И какой предпочитаете вы ? Очень нужно! Спасибо заранее
- Netbeans C++. Не понимаю, что и где не так. Первый раз установила эту программу и понятия не имею, как ей пользоваться
- Подскажите, как пользоваться принт скриптом? Нужно картинку граффити сохранить, не загрузилось в контакте (
- какими программами нужно уметь пользоваться в 5 классе . скиньте ссылку . скиньте ссылку .
- Кто пользуется программой Денвер?
- объясните как пользоваться фотошопом.