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;
	 }
}
2 پاسخ
  1. محمدرضا
    محمدرضا گفته:

    سلام. با تشکر از سایت و مطالب خوبتون.من میخواستم که به عنوان ورودی یک رشته رو بگیرم ولی زمانی که char رو به عنوان یک آرایه مشخص میکنم خطا میده… میخواستم بپرسم مشکل از کجاست؟

    پاسخ

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

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

دیدگاهتان را بنویسید

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

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