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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2012, 22:46   #1
Чубук
Новичок
Джуниор
 
Регистрация: 01.05.2012
Сообщений: 1
Вопрос Списки...(Си)

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

Программу писал, но выводит только 2 элемента, Помогите пожалуйста!

Вот программа:
Код:
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
#include <conio.h>
struct item // opisanie strukturi
{
  float x;
  float y;
  struct item* next; // pole ukazatelya na sleduushii element
}
*start=NULL; //ukaz na tek element
struct item* a,b,c;
float func(float x) {return x*x+5*x-1;} // zadanie osnovnoi funkcii
	
void push_front(float x, float y){ //opisanie proceduri zapisi elementov v pamyat
    struct item* a=(struct item*)malloc(sizeof(struct item));// reserviruem pamyat
    	struct item* b=(struct item*)malloc(sizeof(struct item));// reserviruem pamyat
	
    a=b;
    a->next=b;	
    	struct item* c=(struct item*)malloc(sizeof(struct item));// reserviruem pamyat
    c->x=x;
    c->y=y;
b=c;

}
void print_list(struct item* st) //vivod spiska na ekran
{
    if (st){
	printf("(%4.2f;%4.2f), ", st->x, st->y); //vivod elementa
	print_list(st->next);// vizov proceduri dlya sleduushego elementa,
               // vizivaem proceduru dlya sled elementa na kotorii ukazivaet ukazatel next
    }
    else
	printf("\n");
}
void clear_list(struct item* st) // procedura ochistki pamyati dlya spiska
{
    if (st) {
	clear_list(st->next);// vizov proceduri dlya sleduushego elementa
	free(st); //udalyaem
    }
}
int main ()
{   clrscr();
    float min, max, N, step;
    setlocale( LC_ALL,"Russian" );
    printf("‚ўҐ¤ЁвҐ ¤Ё*Ї*§®* (min max):");
    scanf("%f %f", &min, &max);
    printf("‚ўҐ¤ЁвҐ зЁб«® в®зҐЄ:");
    scanf("%f", &N);
    step=(max-min)/N;
	struct item* a=(struct item*)malloc(sizeof(struct item));// reserviruem pamyat
    	struct item* b=(struct item*)malloc(sizeof(struct item));// reserviruem pamyat
	a->x=min;
    	a->y=func(min);
	b->x=min+step;
	b->y=func(min+step);
	a->next=b;
	start=a;
	N=N-1;	
    while(N--){
	push_front(min, func(min));
	min+=step;
    }
    b->next=NULL;
    print_list(start);
    getch();
    clear_list(start);
   return 0;
}



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 01.05.2012 в 22:49.
Чубук вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Списки sir.andrey Помощь студентам 17 12.07.2011 14:28
СПИСКИ!!! BornOfOsiris Помощь студентам 0 19.05.2011 13:20
Списки Хорнет Паскаль, Turbo Pascal, PascalABC.NET 0 09.06.2010 09:55
Списки KyJIJIEP Общие вопросы C/C++ 0 01.06.2010 21:47