1 条题解

  • 0
    @ 2025-4-14 18:45:30

    C :

    #include<stdio.h>
    #include<string.h>
    #define MAX 100
    int main()
    {
     int a[MAX][MAX];
     int hang,lie;
     int times;
     while(scanf("%d%d%d",&hang,&lie,&times)!=EOF){
     for(int m=0;m<lie;m++)
     for(int j=0;j<hang;j++){
     a[m][j]=0;
    }
     while(times--){
     int i,k;
     scanf("%d%d",&i,&k);
     i=i-1;
     k=k-1;
     a[i][k]=-10000;
     if(i-1>=0)
     a[i-1][k]++;
     if(i+1<hang)
     a[i+1][k]++;
     if(k+1<lie)
     a[i][k+1]++;
     if(k-1>=0)
     a[i][k-1]++;
     if((i+1<hang)&&(k+1<lie))
    	 a[i+1][k+1]++;
     if((i+1<hang)&&(k-1>=0))
    	 a[i+1][k-1]++;
     if((i-1>=0)&&(k+1<lie))
    	 a[i-1][k+1]++;
     if((i-1>=0)&&(k-1>=0))
    	 a[i-1][k-1]++;
    }
    for(int j=0;j<hang;j++)
    for(int i=0;i<lie;i++){
    if(a[i][j]<0)
    printf("*");
    else printf("%d",a[i][j]);
    if(i==hang-1)
    printf("\n");
    else printf(" ");
    }
    }
     return 0;
    }
    

    C++ :

    #include<iostream>
    #include<cstring>
    using namespace std;
    int dx[3]={-1,0,1};
    int dy[3]={-1,0,1};
    int main()
    {
    	int n,m,k, i,j;
    	while (cin>>n>>m>>k)
    	{
    		int s[10][10]={0};
    		while (k--)
    		{
    			int x,y;
    			cin>>x>>y;
    			s[x][y]=-1;
    			
    			for (i=0;i<3;i++)
    				for (j=0;j<3;j++)
    				{
    					if (dx[i]!=0 ||  dy[j]!=0)
    						if (s[x+dx[i]][y+dx[j]] != -1) s[x+dx[i]][y+dx[j]]++; 
    				}
    		}
    		for (i=1;i<=n;i++)
    		{	for (j=1;j<=m;j++)
    			{
    				if (s[i][j]==-1) cout<<"*";
    					else cout<<s[i][j];
    					if (j!=m) cout<<" "; 
    			}
    				cout<<endl;
    		}
    		
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    3456
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者