代码应计算每个字符。如果字符是数字,则它应将前一个字符算作数字。 因此,如果输入为“ a”,则应将“ a”计数一次,然后将其分配给现在等于1的计数器。 但是如果'a'之后为3,则表示'aaa',并且应该计数'a'3次,并将其分配给现在等于3的计数器。 注意:该程序适用于所有字母,但是如果这个字母没有解决,那么编写其余字母有什么意义呢?
我已经尝试为数字专门设置另一个循环,但是没有用。
char secret_message[1000];
int counter,number_counter;
int acounter=0;
gets(secret_message);
for (counter = 0 ; secret_message[counter] != NULL ; counter++)
{
if (secret_message[counter]=='a')
acounter++;
if (secret_message[counter] >= '0' && secret_message[counter] <= '9')
{
for(number_counter=1;number_counter<=secret_message[counter];number_counter++)
{
if (secret_message[counter-1]=='a')
acounter++;
}
}
}
cout<<endl<<"acounter is:"<<acounter;
如果输入为a3,则输出应为3,但应为52!
答案 0 :(得分:0)
您需要将数字从文本转换为数字,然后使用加法:
if (isdigit(secret_message[counter]))
{
const int value = secret_message[counter] - '0';
acounter += value;
}