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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2011, 21:03   #1
altkim
Новичок
Джуниор
 
Регистрация: 19.05.2011
Сообщений: 3
По умолчанию Списки (сложно)

Вычислить значения y некоторой функции F(x) в n точках,
результаты вычислений y вместе со значениями соответствующих x
поместить в список. Вывести на экран элементы списка, содержащие
значения x в интервале от a до b, и соответствующие им значения y.

Проблема с тем, что не могу занести полученные значения в список. С первыми элементами вроде выходит. Помогите, пожалуйста. Уже третий день не могу написать нормально. Крик о помощи

#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
typedef struct spisok *link;
typedef struct spisok
{
float x1; float y1;
struct spisok *next;
}
spisok;
spisok *begin=NULL;
void main()

{
float x, y, k, a, b;
int n, i;
printf("vvedite a:\n");
scanf ("%f", &a);
printf("vvedite b:\n");
scanf ("%f", &b);
printf("kol-vo n:\n");
scanf("%d",&n);
k=(b-a)/n;


{ //1 element spiska
spisok *p, *tmp;
p=(link)malloc(sizeof(spisok));
p->x1=a;
p->y1=exp(a);
p->next=NULL;
begin=p;

while(a<b) //ostalnie
{
a+=k;
y=exp(a);
p->x1=a;
p->y1=exp(a);
p->next=NULL;
}
p=begin;
if(p==NULL)
printf("pust");
else
printf("spisok:\n");


while(p!=NULL) //vivod spiska
{
printf("%f ",p->x1);
printf("%f ",p->y1);
printf("\n");
p=p->next;
}
}


getch();
}
altkim вне форума Ответить с цитированием
Старый 19.05.2011, 21:28   #2
skgwazap
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 40
По умолчанию

У Вас тут списка то и не получается. Получается несвязанный набор отдельных записей. tmp у Вас объявлен, но нигде не использован. Сохраните в него созданную запись, а при создании следующей в tmp->next занесите адрес новой записи.
skgwazap вне форума Ответить с цитированием
Старый 19.05.2011, 21:41   #3
altkim
Новичок
Джуниор
 
Регистрация: 19.05.2011
Сообщений: 3
По умолчанию

while(a<b) //ostalnie
{
a+=k;
y=exp(a);
p->next=tmp;
tmp->next=NULL;
tmp->x1=a;
p=p->next;
}


так?

не выходит..(
altkim вне форума Ответить с цитированием
Старый 20.05.2011, 00:01   #4
skgwazap
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 40
По умолчанию

Код:
{ //1 element spiska
spisok *p, *tmp;
p=(link)malloc(sizeof(spisok));
p->x1=a;
p->y1=exp(a);
p->next=NULL;
begin=p;
tmp=begin;

while(a<b) //ostalnie
{
   a+=k;
   y=exp(a);
   p=(link)malloc(sizeof(spisok));
   tmp->next=p;
   p->x1=a;
   p->y1=exp(a);
   p->next=NULL;
   tmp=p;
}
вроде ничего не напутал
skgwazap вне форума Ответить с цитированием
Старый 21.05.2011, 10:18   #5
altkim
Новичок
Джуниор
 
Регистрация: 19.05.2011
Сообщений: 3
По умолчанию

Все заработало! Спасибо! Как могу отблагодарить??)
altkim вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите сложно ли это? aspar1307 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 19.06.2009 00:04