mhzarei76
سه شنبه 17 آذر 1394, 07:27 صبح
با سلام وخسته نباشید مي خواهیم برنامه اي بنويسيم كه با دريافت يك رشته طولاني از حروف انگليسي، آن را فشرده سازي كند.
براي فشرده سازي به اين صورت عمل مي كنيم كه حروفي كه پشت سر هم به صورت تكراري مي آيند را فقط يك بار چاپ كرده، و بعد از آن تعداد دفعات تكرار آن را چاپ مي كنيم.
مثلا رشته زير
aaaaBBBCxyZZZeeeepppppKKAbbC
به رشته زير تبديل مي شود:
a4B3CxyZ3e4p5k2Ab2C
لطفا راهنمایی کنید ممنون میشم
این هم کد اگه میشه درستش کنید ممنون میشم
#include <stdio.h>#include <conio.h>
char zip(char n[100]);
int main (){
char n[100];
printf ("please enter the char :");
gets(n);
zip(n);
}
char zip (char n[100]){
char a[100],b=0;
int i=0,j=1,sum=1;
for (i;i<100;i++){
for (j;j<100;j++){
if (n[i]==n[j])
sum++;
else
break;
}
// printf ("%c%d",n[j],sum);
n[b]=n[i];
b++;
if (sum!=0)
n[b]=sum;
i=j;
j++;
sum=1;
if (n[i]=='\0')
break;
}
for (int i=0;i<100;i++){
printf ("%s",n[i]);
if (a[i]=='\0')
break;
}
}
137376
براي فشرده سازي به اين صورت عمل مي كنيم كه حروفي كه پشت سر هم به صورت تكراري مي آيند را فقط يك بار چاپ كرده، و بعد از آن تعداد دفعات تكرار آن را چاپ مي كنيم.
مثلا رشته زير
aaaaBBBCxyZZZeeeepppppKKAbbC
به رشته زير تبديل مي شود:
a4B3CxyZ3e4p5k2Ab2C
لطفا راهنمایی کنید ممنون میشم
این هم کد اگه میشه درستش کنید ممنون میشم
#include <stdio.h>#include <conio.h>
char zip(char n[100]);
int main (){
char n[100];
printf ("please enter the char :");
gets(n);
zip(n);
}
char zip (char n[100]){
char a[100],b=0;
int i=0,j=1,sum=1;
for (i;i<100;i++){
for (j;j<100;j++){
if (n[i]==n[j])
sum++;
else
break;
}
// printf ("%c%d",n[j],sum);
n[b]=n[i];
b++;
if (sum!=0)
n[b]=sum;
i=j;
j++;
sum=1;
if (n[i]=='\0')
break;
}
for (int i=0;i<100;i++){
printf ("%s",n[i]);
if (a[i]=='\0')
break;
}
}
137376