Форум программистов, компьютерный форум CyberForum.ru

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

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

переделать с исполбзованием динамических массивов - C++

26.12.2009, 16:07. Просмотров 286. Ответов 3
Метки нет (Все метки)

плз может кто знает как это делать
вобщем вот это:
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
30
31
32
33
34
35
36
37
38
39
40
41
// 9.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <cctype>
#include <string.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int  t=0, n, k[50], max;
  char str[256];
  cout<<"vvedite stroku: "<<endl;
cin>>str;
n=strlen(str);
 for (int i=0; i<n; i++)
  {
    if (isalpha(str[i])) 
{
printf ("%c is alphabetic\n",str[i]);
k[i]=t; //массив с числами кол-ва не-букв
t=0; //прерывает подсчет кол-ва не-букв когда встречает букву
}
    else 
{
printf ("%c is not alphabetic\n",str[i]);
t++; // считает кол-во символов-не-букв
k[i]=t;
}
max=k[0];
  for (int i=0; i<=50; i++)
{
if (k[i]>max) max=k[i];//находит макс кол-во символов не-ьукв идущих подряд
}
 
  }
  cout<<"max: "<<max<<endl;
 
    return 0;
}

нужно переделать с использованием динамических массивов..я пытался,но у меня какая-то ошибка, вот:

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// 9.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <cctype>
#include <string.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int  t=0, n, max;
  char *str = new char[];
  cout<<"vvedite stroku: "<<endl;
cin>>str;
n=strlen(str);
int *arr=new int[n];
//unsigned int arr_size = n;
 for (int i=0; i<n; i++)
  {
    if (isalpha(*(str+i))) 
{
printf ("%c is alphabetic\n",*(str+i));
*(arr+i)=t; //массив с числами кол-ва не-букв
t=0; //прерывает подсчет кол-ва не-букв когда встречает букву
}
    else 
{
printf ("%c is not alphabetic\n",*(str+i));
t++; // считает кол-во символов-не-букв
*(arr+i)=t;
}
max=*(arr+0);
  for (int i=0; i<=50; i++)
{
if (*(arr+i)>max) max=*(arr+i);//находит макс кол-во символов не-букв идущих подряд
}
 
  }
  cout<<"max: "<<max<<endl;
delete [] arr;
delete []str;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2009, 16:07     переделать с исполбзованием динамических массивов
Посмотрите здесь:

Использование динамических массивов - C++
Прошу вашей помощи в решении след задачи (не нужно мне, чтоб вы решали, а хотя б подсказали как все это организовать). Мне надо решить...

Использование динамических массивов - C++
Помогите, пожалуйста. Надо выполнить задание, используя динамические массивы В массиве с четным количеством элементов (2N) находятся...

Обработка динамических массивов - C++
Для размещения массивов следует использовать динамическую память. Задание В матрице удалить строку с минимальным произведением...

Удаление динамических массивов - C++
Здравствуйте, вобщем проблема в этом куске кода: int *makeDigits(int n) { int *digits = new int; int i = 2; while (n != 0) ...

Создание динамических массивов - C++
Здравствуйте. Подтолкните в верном направлении. В начале пользователь задаёт количество массивов, потом размер первого массива, потом...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
26.12.2009, 16:34     переделать с исполбзованием динамических массивов #2
Цитата Сообщение от darkside Посмотреть сообщение
char *str = new char[];
При выделении памяти необходимо указывать размер этой памяти. Эту строку можно переписать например так:
C++
1
char *str = new char[256];
И еще напишите, как у Вас запланировано использование переменной max. По моему использование ее тоже неправильно
darkside
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 12
26.12.2009, 22:45  [ТС]     переделать с исполбзованием динамических массивов #3
спасибо..
max у меня наибольший элем. в массиве arr. я там считаю количество символов отличных от букв. мне нужно найти самую длинную последовательность таких символов идущих подряд. вот там где без динамических массивов вроде нормально все работает..плз а в чем ошибка с max??
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2009, 08:38     переделать с исполбзованием динамических массивов
Еще ссылки по теме:

Создание и размер динамических массивов - C++
Имеется такая задача: Сделал это так: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;array&gt; #include &lt;vector&gt; using...

обработка двухмерных динамических массивов - C++
Помогите пожалуйсто с задачкой написать программу по обработке динамических массивов, размеры массивов водить с клавиотуры. Задана...

Возвращение динамических массивов из фунцкии - C++
имеется функция double** Relaxpl(double alpha, char** grid, int nodesX, int nodesY, double eps1, double eps2, double eps3) { ...

Копирование двумерных динамических массивов - C++
Суть, есть два двумерных динамических массива одного размера, нужно скопировать в первый второй, после чего второй удалить. Простое...


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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.12.2009, 08:38     переделать с исполбзованием динамических массивов #4
Убрал массив arr[] - для подсчета подряд идущих символов не букв он не нужен.
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
30
31
32
33
34
#include "stdafx.h"
#include <iostream>
#include <cctype>
#include <string.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
        int  t=0, n, max=0;
  char *str = new char[256];
  cout<<"vvedite stroku: "<<endl;
cin>>str;
n=strlen(str);
//unsigned int arr_size = n;
 for (int i=0; i<n; i++)
  {
    if (isalpha(*(str+i))) 
{
printf ("%c is alphabetic\n",*(str+i));
 t=0;//ïðåðûâГ*ГҐГІ ïîäñ÷åò êîë-ГўГ* Г*ГҐ-ГЎГіГЄГў êîãäГ* âñòðå÷Г*ГҐГІ ГЎГіГЄГўГі
}
    else 
{
        
printf ("%c is not alphabetic\n",*(str+i));
t++; // Г±Г·ГЁГІГ*ГҐГІ êîë-ГўГ® ñèìâîëîâ-Г*ГҐ-ГЎГіГЄГў
 if(max<t)
     max=t;
} 
}
  cout<<"max: "<<max<<endl;
delete []str;
        return 0;
}
Yandex
Объявления
27.12.2009, 08:38     переделать с исполбзованием динамических массивов
Ответ Создать тему
Опции темы

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