谢谢erikyo哈,我想清楚了
呵呵,我一开始就把题目意思理解错了,老师讲的和你是一样的
还有个问题,如果输入的是AASSAA的话,按上面程序输出的是2A2S2A,怎么样让它输出,4A2S呢?
我的思路上先找出所有不同的元素,挨个保存,然后统计个数。
这个是我改了的代码,各个元素的个数能统计好,但是找元素的时候不知如何是好,AASSAA成了4A2S2S,我接下来该如何改呢?
#include <stdio.h>
#include <string.h>
void main()
{
int times,num[385],k,i,len,j;
const int n;
char c[100][10000],copy[27];
puts("Please Input N :");
scanf("%d",&n);
puts("Well,input the strings:");
for(times=0;times<n;times++)
{
scanf("%s",c[times]);
}
for(times=0;times<n;times++)
{
len=strlen(c[times]);
for(i=0,j=1;i<len;i++)
{
copy[0]=c[times][0];
if(copy[j-1]!=c[times][i+1])
{
copy[j]=c[times][i+1];
j++;
}
}
for(i=0;i<j;i++)
{
num[i]=0;
for(k=0;k<len;k++)
{
if(copy[i]==c[times][k])
num[i]++;
}
}
for(i=0;i<j;i++)
{
if(num[i]>1)
printf("%d%c",num[i],copy[i]);
else
printf("%c",copy[i]);
}
printf("\n");
}
}
[
本帖最后由 hwz91 于 2010-8-28 15:10 编辑 ]