Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
АнастасияО
0 / 0 / 1
Регистрация: 20.02.2015
Сообщений: 81
1

Поиск ошибки в программе

14.10.2016, 19:00. Просмотров 235. Ответов 2
Метки нет (Все метки)

Помогите найти ошибку. Я не могу понять почему она прекращает свою работу
Вот задача, по которой я писала программу: Дан массив, содержащий n элементов. Требуется отсортировать элементы массива в порядке возрастания, отбрасывая при этом все повторяющиеся значения. Количество элементов в массиве после сортировки должно быть скорректировано.

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
#include <stdio.h>
#include <stdlib.h>
int x[100];
int b,n,i,j,mn,p,q,t;
int main()
{
 printf("n=");
 scanf("%d", &n);
 printf("введите элементы массива:");
  for (i=0;i<n;i++)
   scanf ("%d",&x[i]);
  i=0;
  while (i<=n)
   { 
     mn=i;
     for(j=i+1;i<=n;i++)
      if (x[j]<x[mn])
      mn=j;
      b=x[mn];
      for (p=mn; p<=i+1;p--)
      x[p]=x[p-1];
      x[i]=b;
      q=q+1;
     while (q<=n)
       if (x[q]==b)
      {
        for (t=q; t<=n-1; t++)
        x[t]=x[t+1];
        n=n-1;
      }
       else q=q+1;
     i=i+1;
   }
     printf("New:");
     for (i=0; i<=n; i++)
     printf("%d ", x[i]);
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2016, 19:00
Ответы с готовыми решениями:

Поиск ошибки в программе
Помогите найти ошибку. Вот задача, по которой я писала программу: Дан массив, содержащий n...

Ошибки в программе
#include &lt;stdio.h&gt; int main() { int a, b; a = 5; b = (int*)malloc(i * sizeof(int)); FILE *fa;...

2 ошибки в программе
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #define TRUE 1 #define FALSE 0 ...

Ошибки в элементарной программе
По программированию задали на практику написать программу,которая решает задачи по...

Исправить ошибки в программе
Мне надо создать программу с пунктами создания фаила и так далее но компилятор выдает какие-то...

2
Байт
Эксперт C
21839 / 13630 / 2875
Регистрация: 24.12.2010
Сообщений: 28,988
14.10.2016, 21:03 2
Цитата Сообщение от АнастасияО Посмотреть сообщение
while (i<=n)
Цитата Сообщение от АнастасияО Посмотреть сообщение
for(j=i+1;i<=n;i++)
В массиве из n элементов последний индекс n-1
i<n
второй заголовок - перепутаны i и j
Дальше не смотрел
0
alexhak
23 / 23 / 19
Регистрация: 01.11.2015
Сообщений: 128
15.10.2016, 02:06 3
Смотря на ваш код, если честно, я думаю, что вы не совсем понимаете, что пишете. Везде сплошные выходы за пределы массива, путаница с переменными, а также отсутствие {} во многих случаях.
Рекомендую почитать вам эту тему с нуля и порешать для начала более легкие задачи.

Список ошибок:

Выход за границы массива:
C
1
while (i<=n)
C
1
for(j=i+1;i<=n;i++)
C
1
for (p=mn; p<=i+1;p--)
C
1
while (q<=n)
C
1
for (t=q; t<=n-1; t++)
C
1
for (i=0; i<=n; i++)
Вместо i должны быть j:
C
1
for(j=i+1;i<=n;i++)
Фигурных скобок нет нигде на этом участке кода:
C
1
2
3
4
5
6
7
8
for(j=i+1;i<=n;i++)
      if (x[j]<x[mn])
      mn=j;
      b=x[mn];
      for (p=mn; p<=i+1;p--)
      x[p]=x[p-1];
      x[i]=b;
      q=q+1;
Также код нерационален. Вы объявляете массив из 100 элементов. Что если будет 101 элемент?
Решение может быть короче. Код не читаем из-за лишних переменных и лишних действий. На будущее: подписывайте или помечайте как-то переменные.
2
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2016, 02:06

Исправление ошибки в программе на Си
Привет, ребята! Написал код на си. И вот в чём ошибка: на следующей итерации переменные k и sch...

Исправить ошибки в программе
Помогите пожалуйста разобраться что к чему #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; void...

Ошибки в программе по расчету треугольника
Есть алгоритм программы: 1. Вводим каталог поиска файла test.txt. 2. Дальше программа выполняет...


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

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

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