为什么输入“#”后不会自动结束输出呢?
#include
#define N 10
int bian(char * str);
int main()
{
int k,he=0,m=0;
char b[80];
int c[80];
int a[N]={6,2,5,5,4,5,6,3,7,6};
while(scanf("%c",&b[m++])){
if(b[m-1]=='#')
break;
}
int n=bian(b);
for(int i=0;i
c[i]=b[i]-'0';
while(n>0)
{k=n%10;
he+=a[k];
n/=10;
}
printf("%d",he);
return 0;
}
int bian(char * str)
{
int y = 0;
for(int i = 0; i < (int)strlen(str); i++)
{
y=y*10+(str[i]-48);
}
return y;}
改动处见注释,供参考:
#include <stdio.h>
#define N 10
int bian(char * str);
int main()
{
int k,he=0,m=0;
char b[80];
int c[80];
int a[N]={6,2,5,5,4,5,6,3,7,6};
while(scanf("%c",&b[m])==1 && b[m] != '#'){ //修改
m++; //if(b[m-1]=='#')
// break;
}
b[m] = '\0'; //修改
int n=bian(b);
for(int i=0;i<strlen(b);i++)
c[i]=b[i]-'0';
while(n>0)
{
k=n%10;
he+=a[k];
n/=10;
}
printf("%d",he);
return 0;
}
int bian(char * str)
{
int y = 0;
for(int i = 0; i < (int)strlen(str); i++)
{
y=y*10+(str[i]-48);
}
return y;
}