code 46

توجه این برنامه نیاز به یک فایل دارد که در آن تعدادی حرف به طور پیوسته و بدون فاصله وارد شده باشد.

این برنامه ابتدا حروفی که در جایگاه زوج قرار دارد در یک لیست پیوندی قرار میدهد و بار دیگر حروفی را که در جایگاه فرد قرار دارد را در لیستی دیگر .سپس آن دو لیست را به طور جداگانه و در دو خط چاپ میکند.

اشاره گرهای first1 و first2 به منظور نگه داری آدرس خانه اول است .
:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int i=0;
struct node{
	char name=' ';
	struct node *link;
};

struct node* cnode(struct node *temp,char ch){
	struct node *next;
	next=(struct node *)malloc(sizeof(struct node));
	next->name=ch;

	if(i%2==0){
		next->link=temp->link;
		temp->link=next;
		return next;
	}
	else{
		next->link=temp->link;
		temp->link=next;
		return next;
	}	
}

int main(){
	struct node *first1,*first2,*temp1,*temp2;
	
	char ch;
	FILE *fp;
	fp=fopen("node2.txt","r");
	first1=(struct node *)malloc(sizeof(struct node));
	first2=(struct node *)malloc(sizeof(struct node));
	
	first1->link=NULL;
	temp1=first1;
	first2->link=NULL;
	temp2=first2;
	 
	 while(!feof(fp)){
	 	ch=getc(fp);
	 	if(i%2==0){
	 		temp1=cnode(temp1,ch);
		 }
	     else{
		 	temp2=cnode(temp2,ch);
		 }
	 i++;
	 }
	 
	 
	 temp1=first1;
	 temp2=first2;
	 while(temp1!=NULL){
	 	if(temp1==first1){
	 		temp1=temp1->link;
		 }
	 	printf("%c",temp1->name);
	 	temp1=temp1->link;
	 }
	 printf("\n");
	 while(temp2!=NULL)
	 {
	 	if(temp2==first2){
	 	temp2=temp2->link;
		 }
		printf("%c",temp2->name);
	 	temp2=temp2->link;
	 }
}
0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

© کپی رایت - www.irccode.ir