3 条题解

  • 1
    @ 2025-10-2 17:47:08
    
    #include <iostream>
    using namespace std;
    int main()
    {
        int n;
        cin >> n;
        for (int i = 0; i < n / 2; i++)
        {
            for (int j = 0; j < i; j++)
            {
                cout << " ";
            }
    
            cout << "*";
    
            for (int j = n / 2 - 1; j > i; j--)
            {
                cout << " ";
            }
    
            cout << "*";
    
            for (int j = n / 2 - 1; j > i; j--)
            {
                cout << " ";
            }
    
            cout << "*";
    
            cout << endl;
        }
        
        for (int i = 0; i < n; i++)
        {
            cout << "*";
        }
        cout << endl;
    
        for (int i = n / 2 - 1; i >= 0 ; i--)
        {
            for (int j = 0; j < i; j++)
            {
                cout << " ";
            }
    
            cout << "*";
    
            for (int j = 0; j < n / 2 - 1 - i; j++)
            {
                cout << " ";
            }
    
            cout << "*";
    
            for (int j = 0; j < n / 2 - 1 - i; j++)
            {
                cout << " ";
            }
            
            cout << "*";
    
            cout << endl;
        }
        return 0;
    }
    
    
    • 0
      @ 2024-11-5 11:02:04

      #include<bits/stdc++.h> using namespace std; int main() { int n;

      cin>>n;
      
      int mid=n/2+1;
      
      int a[105][105]={0};
      
      for(int i=1; i<=n; i++) //i代表x 
      {
      	for(int j=1; j<=n; j++) //j代表y 坐标(i,j) 
      	{
      		if(i==j)
      			a[i][j]=1;
      		else if(i==mid||j==mid)
      			a[i][j]=1;
      		else if(i+j==n+1)
      			a[i][j]=1; 
      	}
      }
      
      for(int i=1; i<=n; i++)
      {
      	for(int j=1; j<=n; j++)
      	{
      		if(a[i][j]==1)
      			cout<<"*";
      		else
      			cout<<" ";
      	}
      	cout<<endl; //每行结束回撤 
      }
      
      
      return 0;
      

      } /* 0 1 2 3 4 5 6 y(j)

      1 *

      2

      3

      4

      5

      6

      x(i) */

      • -1
        @ 2025-10-2 17:07:28

        注意到米字需要输出两条对角线,一个横列和一个纵列的*,自然联想到使用二维数组来做这道题。

        该有可能因为分给的太少的原因,会变成标红的ac

        #include<stdio.h>
        #include<string.h>
        #include<stdlib.h> 
        #include<math.h>
        
        int main(){
        	int n,x;
            scanf("%d", &n);
            x=(n-1)/2;
            char a[n][n];
            memset(a,' ',sizeof(a));
            int i,j;
            for(i=0;i<n;i++){
            	j=x;
            	a[i][j]='*';
        	}
        	for(j=0;j<n;j++){
        		i=x;
        		a[i][j]='*';
        	}
        	for(i=0;i<n;i++){
        		j=i;
        			a[i][j]='*';
        		
        	}
        	for(i=0;i<n;i++){
        		j=n-1-i;
        			a[i][j]='*';
        		
        	}	
        	for(i=0;i<n;i++){
        		for(j=0;j<n;j++){
        			printf("%c",a[i][j]);
        		}
        		printf("\n");
        	}
            return 0;
        }
        
        • 1

        信息

        ID
        103
        时间
        1000ms
        内存
        256MiB
        难度
        3
        标签
        递交数
        247
        已通过
        124
        上传者