上正确的代码:
#include<bits/stdc++.h> using namespace std; int main(){ ?? ?int a,b; ?? ?char n; ?? ?cin>>a>>b; ?? ?int s[105][105]={0}; ?? ? ?? ?for(int i=1;i<=a;i++){ ?? ??? ?for(int m=1;m<=b;m++){ ?? ??? ??? cin>>n; ?? ??? ??? ?if(n=='*') ?? ??? ??? ??? ?s[i][m]=1; ?? ??? ??? ?else s[i][m]=0; ?? ??? ??? ? ?? ??? ??? ??? ? ?? ??? ?}; ?? ?} ?? ?for(int i=1;i<=a;i++){ ?? ??? ?for(int m=1;m<=b;m++){ ?? ?if(s[i][m]==1) ?? ??? ?cout<<'*'; ?? ?else cout<<s[i-1][m]+s[i+1][m]+s[i+1][m+1]+s[i+1][m-1]+s[i-1][m+1]+s[i-1][m-1]+s[i][m+1]+s[i][m-1]; ?? ?? }printf("\n"); }return 0;}
为什么接下来这个只是在输入时将cin换成scanf就报错了呢?
#include<bits/stdc++.h> using namespace std; int main(){ ?? ?int a,b; ?? ?char n; ?? ?cin>>a>>b; ?? ?int s[105][105]={0}; ?? ? ?? ?for(int i=1;i<=a;i++){ ?? ??? ?for(int m=1;m<=b;m++){ ?? ??? ??? ?scanf("%c",&n); ?? ??? ??? ?if(n=='*') ?? ??? ??? ??? ?s[i][m]=1; ?? ??? ??? ?else s[i][m]=0; ?? ??? ??? ? ?? ??? ??? ??? ? ?? ??? ?}; ?? ?} ?? ?for(int i=1;i<=a;i++){ ?? ??? ?for(int m=1;m<=b;m++){ ?? ?if(s[i][m]==1) ?? ??? ?cout<<'*'; ?? ?else cout<<s[i-1][m]+s[i+1][m]+s[i+1][m+1]+s[i+1][m-1]+s[i-1][m+1]+s[i-1][m-1]+s[i][m+1]+s[i][m-1]; ?? ?? }printf("\n"); }return 0;}
目前看到的一个答案是加上getchar()具体看getchar()的作用_她的吻让他-CSDN博客_getchar()的功能
|