#include <stdio.h> #include <string.h> int main (void) { int i,s,k; char str[80]; i=0; k=0;

#include <stdio.h>
#include <string.h>
int main (void)
{
int i,s,k;
char str[80];
i=0;
k=0;
s=0;
while ((str[k]=getchar())!='\n')
k++;
str[i]='\0';
for(i=0;i<k;i++)
if(str[i]>='0'||str[i]<='9')
{
s=s*10+str[i];
}
printf("%d\n",s);

return 0;
}请问这个程序的逻辑问题在哪里

第1个回答  2016-12-16
注意看有注释的代码行,

#include <stdio.h>
#include <string.h>
int main (void)
{
int i,s,k;
char str[80];
i=0;
k=0;
s=0;
while ((str[k]=getchar())!='\n')
k++;
str[k]='\0';//str[i]='\0';
for(i=0;i<k;i++)
if(str[i]>='0'||str[i]<='9')
{
s=s*10+str[i]-'0'; //s=s*10+str[i];
}
printf("%d\n",s);

getchar(); // 增加一行
getchar();// 增加一行

return 0;
}本回答被网友采纳
相似回答