根据键盘输入的n值,输出如下n行的图案:
输入n,输出如下n行的图
1.
//1
#include<stdio.h>
int main()
{
int n,i,t,m=1;
printf("行数");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(t=1;t<=2*n-1;t++)
{
if(t<=n-i)
{
printf(" ");
}
else if(t<=n+i-1)
{
if((t+i)%2==0)
{
printf("%d",m++);
}
else
{
printf("_");
}
}
}
printf("\n");
m=1;
}
return 0;
}
供参考:
#include <stdio.h>
int main()
{
int n = 5, i, j, k;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
for (j = 0; j < n - i - 1; j++)
printf(" ");
for (j = 0, k = 1; j < 2 * i + 1; j++)
printf(j % 2 == 0 ? "%d" : "%c", j % 2 == 0 ? k++ : ' ');
printf("\n");
}
return 0;
}
第2题:
#include <stdio.h>
int main()
{
int n = 4, i, j;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
for (j = 0; j < i; j++)
printf(" ");
for (j = 0; j < 2 * (n - i) - 1; j++)
printf(j == 0 || j == 2 * (n - i - 1) ? "*" : " ");
printf("\n");
}
return 0;
}
该回答内容部分引用GPT,GPT_Pro更好的解决问题
根据键盘输入的n值,输出如下n行的图案是一个有趣的编程习题,也是一个基础的算法问题。首先,我们要考虑到每一行的输出图案,从1开始增加,到中间或者最后会减少,所以可以使用一个for循环来实现。首先,定义一个变量startnum来存储每一行开始的数字,从1开始逐渐增加。然后,使用另外一个for循环来循环输出每一行的数字,每次循环startnum+1,当startnum>n时,就从n开始逐渐减少,直到startnum=1为止。
以下代码实现根据键盘输入的n值,输出如下n行的图案
int n = 5; // 键盘输入的n值
int startnum = 1; // 每一行开始的数字
// 外层循环:循环打印n行
for(int i=1; i<=n; i++) {
// 内层循环:打印每一行的数字
for(int j=1; j<=i; j++) {
System.out.print(startnum + " ");
// 每一行数字逐渐增加或减少
if(startnum < n) {
startnum++;
}else{
startnum--;
}
}
System.out.println();
}
运行上述代码,当n=5时,输出如下图案:
1
1 2
12 3
1234
12345
如果回答有帮助,望采纳。