C语言 输入一个奇数n,输出一个由‘*’构成的n阶空心菱形。 输入格式: 一个奇数n。 输出格式: 输出一个由‘*’构成的n阶实心菱形。 具体格式参照输出样例。 输入样例: 5
时间: 2023-12-02 08:51:01 浏览: 44
以下是一个C语言实现:
```c
#include <stdio.h>
int main()
{
int n, i, j;
scanf("%d", &n);
// 输出上半部分
for (i = 1; i <= n; i += 2)
{
// 输出空格
for (j = 1; j <= (n - i) / 2; j++)
printf(" ");
// 输出星号
for (j = 1; j <= i; j++)
printf("*");
printf("\n");
}
// 输出下半部分
for (i = n - 2; i >= 1; i -= 2)
{
// 输出空格
for (j = 1; j <= (n - i) / 2; j++)
printf(" ");
// 输出星号
for (j = 1; j <= i; j++)
printf("*");
printf("\n");
}
return 0;
}
```
输入5,输出如下:
```
*
***
*****
***
*
```
相关问题
c语言实现输入一个奇数n,输出-个由*'构成的n阶空心菱形。
好的,我可以帮你解决这个问题。以下是C语言代码实现:
```c
#include <stdio.h>
int main() {
int n, i, j, k;
printf("请输入一个奇数n:");
scanf("%d", &n);
if (n % 2 == 0) {
printf("输入的不是奇数!");
return 0;
}
for (i = 1; i <= n; i++) {
for (j = 1; j <= abs(n / 2 + 1 - i); j++) {
printf(" ");
}
for (k = 1; k <= 2 * (n / 2 + 1 - abs(n / 2 + 1 - i)) - 1; k++) {
if (k == 1 || k == 2 * (n / 2 + 1 - abs(n / 2 + 1 - i)) - 1) {
printf("*");
}
else {
printf(" ");
}
}
printf("\n");
}
return 0;
}
```
运行程序后,输入一个奇数n,程序就会输出一个由*构成的n阶空心菱形。例如,输入5,程序输出如下:
```
*
* *
* *
* *
*
```
希望对你有所帮助!
c语言输入一个奇数n,输出奇数幻方
好的,我可以回答这个问题。以下是输入一个奇数n,输出奇数幻方的 C 语言代码:
#include <stdio.h>
int main() {
int n, i, j, num;
int magic[15][15] = {}; // 初始化为
printf("请输入一个奇数n:");
scanf("%d", &n);
// 初始化第一个数的位置
i = ;
j = n / 2;
num = 1;
// 开始填充幻方
while (num <= n * n) {
if (magic[i][j] == ) {
magic[i][j] = num;
num++;
i--;
j++;
// 处理越界
if (i < ) {
i = n - 1;
}
if (j == n) {
j = ;
}
} else {
i++;
j--;
// 处理越界
if (i == n) {
i = ;
}
if (j < ) {
j = n - 1;
}
}
}
// 输出幻方
printf("奇数幻方为:\n");
for (i = ; i < n; i++) {
for (j = ; j < n; j++) {
printf("%d\t", magic[i][j]);
}
printf("\n");
}
return ;
}