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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2010, 00:15   #1
xad_jek
 
Аватар для xad_jek
 
Регистрация: 08.12.2010
Сообщений: 8
По умолчанию C: частное и остаток от деления двух полиномов

Имеется такая задача:
Найти частное и остаток двух полиномов размерностью m и n заданных своими коэффициентами
вот код программы:

Код:
#include<math.h>
#include<stdio.h>
#include<alloc.h>
#include<conio.h>
#include<stdlib.h>
void main(void)

{

clrscr();
int v,m,n,i,j;

printf ("\t\tProgramma dlya vuchislenia chastnogo i ostatka dvux polinomov");
C1:
printf("\n Vvedite stepen' pervogo polinoma  A:");
scanf("%d",&n);
printf(" Vvedite stepen' vtorogo polinoma B:");
scanf("%d",&m);
if(m>n)
{
printf("Stepen' delimogo ne moget but'  men'she stepeni delitelyaя");
goto C1;
}
if((m==0)||(n==0))
{
printf("Stepeni n i m ne mogut but' ravnu nulyu");
goto C1;
}
double *a,*b,*k;
a=(double*)calloc(n+1,sizeof(double));
C2:
for(i=0;i<=n;i++)
{
printf("\n vvedite koefficient pervogo polinoma A(%d):",i);
scanf("%lf",&a[i]);


if((i==n)&&(fabs(a[i])<=0.0001))
{
printf("Koefficient pri n-oy stepeni ne moget but'  raven nulyu!");
goto C2;
}
}

b=(double*)calloc(n+1,sizeof(double));
C3:
for(i=0;i<=m;i++)
{
printf("\n Vvedite koefficient vtorogo polinoma  B(%d):",i);
scanf("%lf",&b[i]);

if((i==m)&&(fabs(b[m])<=0.0001))
{
printf("Koefficient pri m-oy stepeni ne raven nulyu!");
goto C3;
}
}


k=(double*)calloc(n-m,sizeof(double));
for (j=0;j<=(n-m);j++)
{
k[j]=a[n-j]/b[m];

for(i=0;i<=n;i++)
{
if(i>=(n-(m+j)))
a[i]=(a[i]-(b[i+j-(n-m)]*k[j]));
}
}
printf("Chastnoe:",a[i]);


for (i=0;i<=(n-m);i++)

{
if(i==(n-m))
printf("(%g)",k[i]);
else if(n-(m+i)==1)
printf("(%g)X + ",k[i]);
printf("(%g)X^%d + ",k[i],n-(m+i));
}

printf("\nOstatok:");

for (i=n;i>=0;i--)

{
if(i==0)
printf("(%g)",a[i]);
else if (a[i]==0)
printf(" ");
else if(n-(m+i)==1)
printf("(%g)X + ",a[i]);

printf("(%g)X^%d + ",a[i],i);
}
getchar();
}
В коде наблюдается где-то ошибка приводящая к невыводу результата. Т.е после ввода всех коэффициентов происходит закрытие программы. Помогите найти ошибку.

Последний раз редактировалось xad_jek; 10.12.2010 в 00:55. Причина: обновил код программы
xad_jek вне форума Ответить с цитированием
Старый 10.12.2010, 00:28   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Попробуйте в конце программы поставить getchar().

И так, на заметку: если вам ничего не надо писать в блоке else, то лучше его вообще не писать. И goto желательно не пользоваться - это усложняет чтение кода.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 10.12.2010, 00:39   #3
xad_jek
 
Аватар для xad_jek
 
Регистрация: 08.12.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от ACE Valery Посмотреть сообщение
Попробуйте в конце программы поставить getchar().

И так, на заметку: если вам ничего не надо писать в блоке else, то лучше его вообще не писать. И goto желательно не пользоваться - это усложняет чтение кода.
getchar() поставил-результат аналогичный
xad_jek вне форума Ответить с цитированием
Старый 10.12.2010, 00:43   #4
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от xad_jek Посмотреть сообщение
getchar() поставил-результат аналогичный
А без goto программу можете написать , может просто у вас программа никогда не приходить в конец кода .
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 10.12.2010, 00:55   #5
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

xad_jek, значит, поставьте два getchar'а
Я не шучу. У меня все выводит с двумя гетчарами.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 10.12.2010, 00:57   #6
xad_jek
 
Аватар для xad_jek
 
Регистрация: 08.12.2010
Сообщений: 8
По умолчанию

поудалял "лишние" else, без результата,
Upd. два getchar() помогли=)
всем спасибо

Последний раз редактировалось xad_jek; 10.12.2010 в 00:59.
xad_jek вне форума Ответить с цитированием
Старый 10.12.2010, 09:32   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
два getchar() помогли=)
Тебе ИМХО system("pause") должно понравится
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.12.2010, 08:27   #8
xad_jek
 
Аватар для xad_jek
 
Регистрация: 08.12.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Тебе ИМХО system("pause") должно понравится
в каком всмысле?
xad_jek вне форума Ответить с цитированием
Старый 11.12.2010, 09:12   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
в каком всмысле?
Вместо getchar(); Попробуй
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.12.2010, 12:52   #10
xad_jek
 
Аватар для xad_jek
 
Регистрация: 08.12.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Вместо getchar(); Попробуй
если убрать один getchar();(или даже оба) и прописать предложенный вами оператор, то результата не выводит
xad_jek вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Остаток от деления Memfis_nya Помощь студентам 23 26.09.2010 14:58
частное от деления pha Помощь студентам 1 05.05.2009 14:48
остаток от деления % Division Общие вопросы C/C++ 5 25.12.2008 14:08
Массивы, частное, остаток(исправить) Alter Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 24.05.2008 23:37