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; } }
سلام. با تشکر از سایت و مطالب خوبتون.من میخواستم که به عنوان ورودی یک رشته رو بگیرم ولی زمانی که char رو به عنوان یک آرایه مشخص میکنم خطا میده… میخواستم بپرسم مشکل از کجاست؟
احتمالا این کد کمکتون کنه . هم آرایه یک بعدی و هم دوبعدی char در کد استفاده شده
http://irccode.ir/code-38/