Найти произведение ряда при помощи двунаправленного списка - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здрасте,прошу подкорректировать решение,не могу понять почему не выводится результат,по возможности прошу описать в чем была ошибка: даны действительные числа х1,х2,..,хN(N>=2 и заранее неизвестно)вычислить: x1*xN+x2*x(N-1)+...+xN*x1,решить необходимо решить при помощи двунаправленного списка.данные должны извлекаться из файла. вот шо у мя получилось:
#include<stdio.h>
 
struct sps
{float elem;
sps *next,*pred;
};
 
sps *vvod(FILE *fp)
{
sps *l=NULL;
sps *r=NULL;
l=new sps;
l->next=NULL;
l->pred=NULL;
r=l;
while (r->elem='\n');
{r->next=new sps;
r->next->next=NULL;
r->next->pred=r;
fscanf_s(fp, "%c",&(r->next->elem));
r->next=NULL;}
return l;
};
 
float rewenie(sps *l,sps *r,float sum,int i,int k)
{
while(r->next->next!=l->next)
{r=r->next;
i=i+1;}
for(;k<i;k++)
{
sum=sum+l->next->elem*r->next->pred->elem;
l->next->elem=l->next->next->elem;
r->next->pred->elem=r->next->pred->pred->elem;
}
return sum;
}
 
void main()
{
sps *l=NULL,*r=NULL;
FILE *fp;
float sum=0;
int i=0,k=0; 
fp=fopen("proba.txt","r");
if(fp)
{r=vvod(fp);
sum=rewenie(l,r,sum,i,k);
fclose(fp);
printf("%f",sum);
}else printf("net");}

Решение задачи: «Найти произведение ряда при помощи двунаправленного списка»

textual
Листинг программы
while (r->elem='\n')

ИИ поможет Вам:


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

Оцени полезность:

14   голосов , оценка 4.286 из 5
Похожие ответы