字符類型題:這題沒什說的
主要注意有一個重點,我醋了這裏好多次,經過同學提點,最終明白的!!!見代碼講解;(其實我當初並沒把這道題完全想明白的,這只是在參考別人的後的,,)
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
char a[30][10000]= {"1","11","21"};
int i,j,k,q,n,m;
char str;
while(scanf("%d",&n),n)
{
for(i=3; i<n; i++)
{
k=0;
for(j=0; a[i-1][j]!='\0';)
{
q=1;
str=a[i-1][j];
while(1)
{
j++;
if(a[i-1][j]==str)
{
q++;
}
else
break;
}
a[i][k]=q+'0'; //主要注意這裏的k 的變化,
k=k+1; //
a[i][k]=str; //在這行中如果寫出a[i][k+1]=str:就錯了,爲啥呢麼?應爲在字符串中沒錯,是指他的下一位。但是k的值並沒變化,所以會出錯。
k++;
}
a[i][k]='\0';
}
m=strlen(a[n-1]);
printf("%d\n",m);
}
return 0;
}