Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2012, 11:38   #1
АлинКО
 
Регистрация: 15.12.2010
Сообщений: 6
По умолчанию где ошибка в коде? Программа на С

Задача написать программу в которую пользователь вводит массив чисел, а программа удаляет элементы равные 0. прога нули удаляет, но в конце строки добавляет элементы равные последнему в массиве. прога на работу с функциями. помогите пожалуйста найти ошибку.

#include <stdio.h>
#include <conio.h>
#include <math.h>

void vyvod(int m[20],int n)
{
int i;
printf("\nitogovyi massiv\n");
for(i=0;i<n;i++)
printf(" %i",m[i]);
printf("\nrazmer=%i",n);
}
void udalenie(int m[20],int n)
{
int i,j,s;
for(i=0;i<n;i++)
printf(" %i",m[i]);
s=0;
for(i=0;i<n;i++)
{
if (m[i]==0)
{
s++;
for(j=i;j<n-1;j++)
m[j]=m[j+1];
i--; n--;
}
}
}
void main(void)
{
int n,m[20],i;
clrscr();
while(1)
{
printf("Vvedite razmer massiva:\n");
printf("RAZMER=");
scanf("%i",&n);
if (n>0&&n<21) break;
printf("\nError, poprobuite eche raz\n\n");
}
clrscr();
for(i=0;i<n;i++)
{
printf("Vvedite %i element massiva\n",i+1);
scanf("%i",&m[i]);
}
printf("ishodnyi massiv\n");
udalenie(m,n);
vyvod(m,n);
getch();
}
АлинКО вне форума Ответить с цитированием
Старый 15.01.2012, 12:55   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Все просто.
В процедуру udalenie ты передаешь n в виде копии. То есть, после завершения процедуры, значение локальной переменной обратно не передается. Выход -- передать указатель на переменную.
А вообще -- отвратительно составленная программа... Много лишнего.

ЗЫ Код надо форматировать (кнопка с решеткой)
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 15.01.2012, 14:03   #3
АлинКО
 
Регистрация: 15.12.2010
Сообщений: 6
По умолчанию

я еще не умею пользоваться указателями. можете написать как это должно быть?
АлинКО вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка в коде? explosion14 Общие вопросы Delphi 5 11.12.2011 16:19
Где ошибка в коде? levohotnik Microsoft Office Excel 3 28.10.2010 17:30
Где ошибка в коде? ilgar-90 Общие вопросы Delphi 2 08.02.2010 09:04
Где ошибка в моем коде? artemavd БД в Delphi 12 22.09.2008 14:28
Где ошибка в коде? Македонский Общие вопросы Delphi 16 10.09.2007 15:45