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

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

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

Что-то с циклом в программе не могу понять - C++

10.03.2013, 20:43. Просмотров 241. Ответов 4
Метки нет (Все метки)

в принципе, функция выделяет в новый массив слов все повторяющиеся слова из старого, но я закоментировал, это, так как у меня почему то не работает цикл, я голову уже сломал себе, for(i=0,i<razm;i++) для i =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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
 
void newarray(char** &arrw1,int &razm,char** &arrw2);
 
 
int main()
{
 char** a=0;char** b=0;char s[100]; int i,n=0;
 
 printf("skolko slov hotite vvesti?");
 scanf("%d",&n);
 
 a=(char**)malloc(sizeof(char*)*n);
 
 for(i=0;i<n;i++)
 {
  printf("\nslovo%d ",i+1);
  scanf("%s",&s);
  *(a+i)=(char*)malloc(sizeof(char)*(strlen(s)+1));
  strcpy(*(a+i),s);
 }
 
 newarray(a,n,b);
 
   
   system("PAUSE"); 
   return EXIT_SUCCESS;
}
 
void newarray(char** &arrw1,int &razm,char** &arrw2)
{
 int k=0,m=0,i,j;
 arrw2=0;
 
 
 for(i=0;i<razm;i++)
 
  for(j=i+1;j<=razm;j++)
  cout<<strcmp(arrw1[i],arrw1[j]);
  
  /*if(!(strcmp(arrw1[i],arrw1[j])))
  {
   arrw2=(char**)realloc((char**)arrw2,sizeof(char*)*(m+1));
   strcpy(arrw2[m],arrw1[j]);
   m++;
   k=1;
  }
  if(k==1)
   {
    arrw2=(char**)realloc((char**)arrw2,sizeof(char*)*(m));
    strcpy(arrw2[m],arrw1[j]);
    m++;
    k=0;
   }*/ 
  
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2013, 20:43     Что-то с циклом в программе не могу понять
Посмотрите здесь:

Строки в С++, не могу понять что неправильно в программе - C++
Необходимо: 1) Найти количество слов в строке, 2) вывестии все слова в порядке возрастания длинн, 3) вычислить количество одинаковых...

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

пара мелких ошибочек в программе, не могу понять в чем(( - C++
Пара мелких ошибочек в программе, не могу понять в чем(( #include &lt;math.h&gt; #include &lt;stdio.h&gt; #define N 200 /*формируем...

не могу понять что не так((((( - C++
привет всем! у меня проблемка возникла компиятор никак не проглатывает мой код #include &lt;iostream&gt; using namespace std; int main() ...

не могу понять что с выводом - C++
помогите найти косяк,у меня при отрицательном &quot;a&quot; он выдаёт результат и &quot;error&quot; хотя должен только &quot;error&quot; таже проблема если b=0 a&gt;0 ...

что не верно? не могу понять. - C++
программа должна оборачивать каждое слово в предложении. (например &quot;пришел&quot;, а выведет &quot;леширп&quot;) #include &quot;stdio.h&quot; #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
10.03.2013, 20:53     Что-то с циклом в программе не могу понять #2
А границы цикла вы поставили?

C++
1
2
3
4
for(int i=0;i<10;i++)
{//граница
 
}//граница
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
10.03.2013, 20:53     Что-то с циклом в программе не могу понять #3
Цитата Сообщение от Karnal Посмотреть сообщение
scanf("%s",&s)
возможно следует сделать scanf("%s",s); я всегда так делаю, но не уверен, является ли &s ошибкой.
Karnal
0 / 0 / 0
Регистрация: 10.03.2013
Сообщений: 14
10.03.2013, 21:00  [ТС]     Что-то с циклом в программе не могу понять #4
Цитата Сообщение от egor2116 Посмотреть сообщение
А границы цикла вы поставили?

C++
1
2
3
4
for(int i=0;i<10;i++)
{//граница
 
}//граница
убрал чтобы посмотреть что будет делаться в цикле и благодаря этому узнал, что цикл дальше i=0 не идет, strcmp это результат сравнения строк, я посмотрел несколько раз вывод и понял что после i=0 и j=razm программа завершается с ошибкой которую уже описал
ПРОСТО ПОПРОБУЙТЕ ВЫПОЛНИТЬ ПРОГРАММУ ВВЕДИТЕ СЛОВА, ЕДИНИЧКИ НОЛИКИ И МИНУС ЕДИНИЧКИ ЭТО РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ 42 СТРОЧКИ В ПРОГРАММЕ, ПОНЯТНО ЧТО ЕСЛИ ПОСЛЕ НЕЕ ОНА ЗАВЕРШАЕТСЯ С ОШИБКОЙ ТО i=1 не выполняется уже.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2013, 21:10     Что-то с циклом в программе не могу понять
Еще ссылки по теме:

Не могу что-то понять с указателями - C++
Объясните мне,пожалуйста, почему когда я пишу так: void main() { char arr=&quot;erbb45&quot;; char *parr = &amp;arr; cout &lt;&lt; hex; ...

не могу понять что не так - C++
задание такое : Структура &quot;книга почтой&quot;:-наименование книги;-ФИО автора;-номер по каталогу;-издательство;-колличество в...

Не могу понять что за ошибка в коде - C++
Вот код: #include &lt;iostream&gt; using namespace std; void main() { setlocale(0, &quot;ru&quot;); int X, Y ;

Обьясните что не так не могу понять - C++
программа должна менять цвет bmp файла но при запуске выдает ошибку что 2 неразрешимых внешних элемента есть и все я пробовал разобраться...


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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,737
10.03.2013, 21:10     Что-то с циклом в программе не могу понять #5
Цитата Сообщение от Karnal Посмотреть сообщение
for(j=i+1;j<=razm;j++)
* cout<<strcmp(arrw1[i],arrw1[j]);
на последней итерации j=razm в результате arrw1[j]=arrw1[razm] выход за пределы массива
ведь последний элемент массива arrw1[razm-1]
Yandex
Объявления
10.03.2013, 21:10     Что-то с циклом в программе не могу понять
Ответ Создать тему
Опции темы

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