Код
#include "stdafx.h"
#include <stdio.h>
struct list
{
int inf1,inf2; // коэфициенты
int st1,st2; // степени
struct list *ref1,*ref2;
};
main()
{
FILE *fp,*fp2;
struct list *p1,*p2,*beg1 = NULL,*beg2 = NULL,*end1 = NULL,*end2 = NULL;
fp = fopen ("spisok.txt","r");
fp2= fopen ("spisok2.txt","r");
printf("MNOGOCHLENI\n");
int i,k;
i = -1; // степень первого многочлена
k = -1; //степень второго многочлена
while ( !feof(fp) && !feof(fp2) )
{
p1 = p2 = (struct list*)malloc(sizeof(struct list));
fscanf (fp,"%d",&p1->inf1);
fscanf (fp2,"%d",&p2->inf2);
i++; //увеличиваем степень первого многочлена, степени идут с головы списка
if (feof(fp) && feof(fp2))
{
free(p1);
free(p2);
break;
}
end1 = p1; end2 = p2;
end1->ref1 = end2->ref2 = NULL;
while (p1!=NULL) // вывод на экран первого списка
{
p1->st1 = i;
printf("k = %d, st = %d\n",p1->inf1,p1->st1);
p1=p1->ref1;
}
while (p2!=NULL) // вывод на экран второго списка
{
printf("k2 = %d\n",p2->inf2);
p2=p2->ref2;
}
}
}
Вот набрасал алгоритм:
1) Начинаем обходить 1ый список
2) Считываем степень
3) Перемножаем элементы 1-го списка с элем. 2-го списка, если степени равны
4) Если степени не равны, то (?????????) - тута че-то не доходит
5) Результат записываем в третий список.
Сообщение отредактировано: Bo2nik -