赞
踩
如何输出一个实心菱形?利用for循环嵌套的模式
以生成一个由*形成的菱形为例,需要输出特定的空格数和*号数
如输出2n-1行由*构成的菱形,n=5时
主要是先输出空格,然后是字符,注意空格和字符的变化规律;
这是一个编程题模板。
本题要求编写程序,输出2n-1行由大写字母A开始构成的菱形字符阵列。#include <stdio.h>
- int main() {
- int n,i,j,k;
- scanf("%d", &n);
- for(i=1;i<=n;i++){
- for(j=1;j<=n-i;j++){
- printf(" ");
- }
- for(k=1;k<=2*i-1;k++){
- printf("%c",'A'+i-1);
- }
- printf("\n");
- }
- for(i=n-1;i>=1;i--){
- for(j=1;j<=n-i;j++){
- printf(" ");
- }
- for(k=1;k<=2*i-1;k++){
- printf("%c",'A'+i-1);
- }
- printf("\n");
- }
- return 0;
- }

这段代码中使用了 'A' + i - 1
的表达式来输出字符。这种写法是正确的,因为字符在内存中是以整数形式存储的。
当使用 'A' + i - 1
时,实际上是将字符 'A'
的 ASCII 码值(65)加上 i - 1
的值,得到一个新的 ASCII 码值。由于 ASCII 码表中相邻的字符之间的值是连续的,所以这个新的 ASCII 码值对应的字符正好是 'A'
加上 i - 1
的结果。
例如,当 i = 2
时,'A' + i - 1
的值为 'A' + 2 - 1
,即 'A' + 1
,对应的 ASCII 码值为 66,也就是字符 'B'
。因此,这段代码使用 'A' + i - 1
来输出从 'A'
到 'A' + n - 1
的所有大写字母。
这种写法是合法的,并且可以方便地输出所需的字符。
- #include<stdio.h>
- int main(){
- int n;
- scanf("%d",&n);
- for(int i=0;i<n;i++)
- {
- for(int j=n-1-i;j>0;j--)
- {
- printf(" ");
- }
- for(int k=i+1;k>0;k--)
- {
- printf("*");
- if(k>1)//关键,
- {
- printf(" ");
- }
- }
- printf("\n");
- }
- return 0;
- }

输出效果:
*
* *
* * *
* * * *
* * * * *
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。