الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج مطلوب عاجل === وتكفون الفزعه

مغلق
بدأه vb2020 في 15 مايو 2001 · 1 رد · 483 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ياشباب هذي والله اول مشاركة في المنتدى فالرجاء ماتردوني خايب

الزبده (( لورباك )) -- لا خفيف دم --

عموماً المطلوب هو عمل انشاء fileفيه عدة ارقام (طبعاً انشائه طبيعي عن طريق المفكرة) وبعدين تخلي البرنامج يقراء من الملف هذا ويخزنه في ملف جديد وتكون الأرقام مرتبه ترتيب تصاعدي او تنازلي مافيه مشكله المهم انها مرتبه

**

يا شباب هذا برنامج مقارب للمطلوب بس انه ما يرتب الأرقام وفيه بعض الأخطاء

(( الرجاء سرعة الرد لأن البرنامج مطلوب يوم الأحد القادم ))

#include<stdio.h>

#include<stdlib.h>

#include<malloc.h>

#define TRUE 1

#define FALSE 0

FILE *indataA,*indataB,*fopen();

	struct node

{

struct node *prev;

	int data;

	struct node *next;

};

struct node *get_node()

{

	return((struct node *) malloc (sizeof(struct node)));

}

get_data(x,indata)

	int *x;

	FILE *indata;

{

	fscanf(indata,"%d",x);

}

llist_create(list,last_elem_num,last_elem_ptr,cur_elem_num,cur_elem_ptr,list_size)

	struct node **list,**last_elem_ptr,**cur_elem_ptr;

	int *last_elem_num,*cur_elem_num,*list_size;

{

struct node * get_node ();

  *list=get_node();

 (*list)->next=NULL;

 (*list)->prev=NULL;

 (*list)->data=0;

 *cur_elem_num=0;

 *cur_elem_ptr=NULL;

 *last_elem_num=0;

 *last_elem_ptr=NULL;

 *list_size=0;

 }

 llist_is_empety(list_size)

 int list_size;

 {

 if (list_size==0)

 return (TRUE);

 else

 return (FALSE);

               

 }



 llist_first(list,cur_elem_num,cur_elem_ptr,list_size)

        struct node *list,**cur_elem_ptr;

	int *cur_elem_num,list_size;    

	{

	if (!llist_is_empty(list_size))

	{

     *cur_elem_ptr=list->next;

     *cur_elem_num=1;

     return (*cur_elem_num);

 }

	else return(0);

	}

 llist_end(last_elem)

 int last_elem;

 {

 return (last_elem);

 }

 next(i)

 int i;

 {

 return (i+1);

 }

llist_append(list,val,last_elem_num,last_elem_ptr,cur_elem_num,cur_elem_ptr,list_size)

   struct node *list,**last_elem_ptr,**cur_elem_ptr;

   int val,*last_elem_num,*cur_elem_num,*list_size;

{

 struct node *w ,*q;

 if (list_size==0)

 w=list;

 else



 q=get_node();

  w->next=q;

  q->prev=w;

  q->next=NULL;

  q->data=val;

  *last_elem_ptr=q;

  *cur_elem_ptr=q;

  (*list_size)++;

  *cur_elem_num=*last_elem_num;

      }

llist_build(list,last_elem_num,last_elem_ptr,cur_elem_num,cur_elem_ptr,list_size,indata)

 struct node *list,**last_elem_ptr,**cur_elem_ptr;

 int *last_elem_num,*cur_elem_num,*list_size;

 FILE*indata;

 {

   int x;

	while(!feof(indata))

	{

	get_data(&x,indata);

	llist_append(list,last_elem_num,last_elem_ptr,cur_elem_num,cur_elem_ptr,list_size,indata);

       }

 }

 llist_display(list)

 struct node *list;

 {

  struct node *tmpu_node;

	tmpu_node=list;

	while (tmpu_node !=NULL)

{

	printf(" The data is %dn",tmpu_node->data);

	tmpu_node=tmpu_node->next;

}

 }

 find_elem(list,cur_elem_num,cur_elem_ptr,pos,ptr)

 struct node *list,**cur_elem_ptr,**ptr;

 int *cur_elem_num,pos;

 {



	struct node*tmptr;

  int cntr=1;

  tmptr=list->next;

  while (count++<pos)

    tmptr=tmptr->next;

  *cur_elem_num=pos;

  *cur_elem_ptr=tmptr;

  return (tmptr);

                

  }

  llist_retrieve (list,pos,cur_elem_num,cur_elem_ptr)

  struct node *list,**cur_elem_ptr;

  int pos,*cur_elem_num;

  {

  struct node *elem_ptr,*find_elem();

  elem_ptr=find_elem(list,cur_elem_num,cur_elem_ptr,pos);

                return (elem_ptr->data);

   }



  main ()

  {

  struct node *A,*last_ptrA,*cur_ptrA;

  struct node *B,*last_ptrB,*cur_ptrB;

  struct node *C,*last_ptrC,*cur_ptrC;

  int lastA,curA,sizeA,lastB,curB,sizeB,lastC,curC,sizeC,p,q;

  int y;



  indataA=fopen("in1.txt","r");

  indataB=fopen("in2.txt","r");



  llist_create(&A,&lastA,&last_ptrA,&curA,&cur_ptrA,&sizeA);

  llist_create(&B,&lastB,&last_ptrB,&curB,&cur_ptrB,&sizeB);

  llist_create(&C,&lastC,&last_ptrC,&curC,&cur_ptrC,&sizeC);



  llist_build(&A,&lastA,&last_ptrA,&curA,&cur_ptrA,&sizeA,indataA);

  llist_build(&B,&lastB,&last_ptrB,&curB,&cur_ptrB,&sizeB,indataB);



  llist_display(A);

  printf ("n");

  llist_display(B);

  printf ("n");



  llist_display(A);

  printf ("n");

  llist_display(B);

  printf ("n");



  p=llist_first(A,&curA,&cur_ptrA,sizeA);

  q=llist_first(B,&curB,&cur_ptrB,sizeB);



 while ((p<=llist_end(lastA))&&(q<=llist_end(lastB)))

 {

if (llist_retrieve(A,p,&curA,&cur_ptrA)< llist_retrieve (B,q,&curB,&cur_ptrB))

 {

 llist_append(C,llist_retrieve(A,p,&curA,&cur_ptrA),&lastC,&last_ptrC,&curC,&cur_ptrC,&sizeC);

    p=next(p);

     }

     else

     {

 llist_append(C,llist_retrieve(B,q,&curB,&cur_ptrB),&lastC,&last_ptrC,&curC,&cur_ptrC,&sizeC);

 if(llist_retrieve(A,p,&curA,&cur_ptrA)==llist_retrieve (B,q,&curB,&cur_ptrA))

 p=next(p);

    q=next(q);

     }

     }

 if(p<=llist_end(lastA))

 while(p<=llist_end (lastA))

    {

 llist_append(C,llist_retrieve(A,p,&curA,&cur_ptrA),&lastC,&last_ptrC,&curC,&cur_ptrC,&sizeC);

    p=next(p);

    }

     else

     while (q<=llist_end(lastB))

     {

 llist_append(C,llist_retrieve(B,q,&curB,&cur_ptrB),&lastC,&last_ptrC,&curC,&cur_ptrC,&sizeC);

 q=next(q);

     }

  llist_display(C);

  printf ("nn Enter any nuber to quit: ");

  scanf ("%d",&y);

  printf ("n Good bye!");

  fclose (indataA);

  fclose (indataB);

  }

وشاكراً لكم مرة اخرى

اخوك ابو محمد

vb2020@hotmail.com

[عدلت بواسطة محمد بدوي ت:16-05-2001 س: 08:58 PM]

#2

أخي البرنامح الذي وضعته أعتقد أن ليس له علاقة بالموضوع فهو برنامج لبناء ال Linked List .. (اللائحة المترابطة) ...

فارجو التوضيح أكثر ... وإلا هل بدك برنامج جديد :):)

Coding on the Cloud and for the Cloud!

My Blog

هذا الموضوع مغلق.

مواضيع مشابهة