سلام خسته نباشید یه برنامه می خوام به زبان c یا پاسکال یا C++ که یک فایل txt حاوی عدد را که با space از هم جدا شدن از ورودی بگیره و به روش Bubble sort یا insertion sort یا radix sort مرتبش کنه و دوباره در یک فایل متنی به عنوان خروجی بزارتش
مرسی
Printable View
سلام خسته نباشید یه برنامه می خوام به زبان c یا پاسکال یا C++ که یک فایل txt حاوی عدد را که با space از هم جدا شدن از ورودی بگیره و به روش Bubble sort یا insertion sort یا radix sort مرتبش کنه و دوباره در یک فایل متنی به عنوان خروجی بزارتش
مرسی
با سلام.
تابع bobblesort که یه آرایه ای از رشته ها رو بگیره و مرتب کنه رو که بلدی بنویسی، فقط میمونه اینکه اول اطلاعات فایل رو بریزی تو همون آرایه از رشته ها.اول کل فایل رو میریزی تو یه رشته ی بزرگ و بعد با تابع strtok اون رو تکه تکه میکنی و داخل رشته میریزی:
#include<string.h>
//vars
char *buf=new char[9000];
char **dic =new char[400][20];
int i=0;
char *filename="new.txt";
//file read
FILE *fp=fopen(filename,"r");
fgets(buf,sizeof(buf),fp);
//add to dic
char *word=strtok(buf," ");
strcpy(dic[i],word);
while(word!=NULL)
{
i++;
word=strtok(buf,NULL);
strcpy(dic[i],word;
}
//sort
sort(dic,400,20);
خودم کامپایلش نکردم.
سلام جواب نمی ده پیغام خطا میده
اول بايد تابع sort رو به قول دوستمون پياده سازي کني . بعد از اون اين قطعه کدها رو مي ذاري تو تابع main . البته string رو بيرون از main اينکلود مي کني .
فقط مي مونه يه مشکل که اونو هم از جناب mortezamsp مي پرسم .
مطمئن هستين که تخصيص حافظه براي آرايه دو بعدي رو درست انجام دادين ؟
نکنه تو همین هایی که من نوشتم رو بردی کپی کردی که اجرا نمیشه؟این یه مثاله فقط برای اینکه بفهمی باید بترتیب چه کارهایی رو بکنی.
نه! غلط انجام دادم.باید اینجوری باشه:
//dic[200][40]
char *dic[20];
for(int i=0;i<200;i++)
dic[i]=new char[40];
کسی میتونه بدون ریختن اعداد در ارایه و ... داحل همون فایل مرتب کنه؟
امکانش هست اصلا؟