3 条题解
-
1
#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
#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
注意到米字需要输出两条对角线,一个横列和一个纵列的*,自然联想到使用二维数组来做这道题。
该有可能因为分给的太少的原因,会变成标红的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
- 上传者