初学者的c语言问题,如图

问题描述

初学者的c语言问题,如图

 #include <stdio.h>
int main()
{
    int i,j,k,ch,n;
    printf("请输入行数:");
    scanf("%d",&n);
    for(i=1;i<n+1;i++)
    {
        for(k=1;k<n+1-i;k++)
        {
            printf(" ");
        }
        for(j=1,ch='A';j<=i;j++,ch++)
        {
            printf("%c",ch);
        }
        ch=ch-2; //关键
        for(j=1;j<i;j++,ch--)
        {
            printf("%c",ch);
        }
        printf("n");
    }

    for(i=1;i<n;i++)
    {
        for(k=1;k<=i;k++)
        {
            printf(" ");
        }
        for(j=n,ch='A';j>i;j--,ch++)
        {
            printf("%c",ch);
        }
        ch=ch-2;
        for(j=n;j>i;j--,ch--)
        {
            printf("%c",ch);
        }
        printf("n");
    }

}

为什么会出现右边的@啊

解决方案

下半部分有个地方多循环了一次,打印一行的后半部分应该比前半部分少循环一次(改的地方我标注在代码里了)

#include <stdio.h>
int main()
{
    int i,j,k,ch,n;
    printf("请输入行数:");
    scanf("%d",&n);
    for(i=1;i<n+1;i++)
    {
        for(k=1;k<n+1-i;k++)
        {
            printf(" ");
        }
        for(j=1,ch='A';j<=i;j++,ch++)
        {
            printf("%c",ch);
        }
        ch=ch-2; //关键
        for(j=1;j<i;j++,ch--)
        {
            printf("%c",ch);
        }
        printf("n");
    }

    for(i=1;i<n;i++)
    {
        for(k=1;k<=i;k++)
        {
            printf(" ");
        }
        for(j=n,ch='A';j>i;j--,ch++)
        {
            printf("%c",ch);
        }
        ch=ch-2;
        for(j=n;j>i;j--,ch--)//应该改成for(j=n;j-1>i;j--,ch--)
        {
            printf("%c",ch);
        }
        printf("n");
    }

}

解决方案二:

for(j=n,ch='A';j>i-1;j--,ch++)

时间: 2024-10-27 22:09:29

初学者的c语言问题,如图的相关文章

c语言-初学者,C语言问题,100-999绝对素数(幻影素数)的问题

问题描述 初学者,C语言问题,100-999绝对素数(幻影素数)的问题 绝对素数:例如107和701都是素数,而且他们相反,所以他们是绝对素数. 我会求素数,但是不会求绝对素数,希望大神们能给予帮助啊,不甚感激,希望能在我的代码上补充就好了 #include<stdio.h> int main() { int i,k,flag=1; for(i=100;i<=999;i++) { flag=1;// notice for(k=2;k<i;k++) { if(i%k==0) { fl

c语言-初学者学C语言看书遇到的问题

问题描述 初学者学C语言看书遇到的问题 if(c>='Z'&&c<='Z'+4||c>'z') //书上写的是用这句话判断c是否是26个字母的后4个之一 想请大家讲解一下,初学者,着实没看懂,为什么不写成 if((c>='W'&&'c'<='Z')||(c>='w'&&'c'<='z')) 解决方案 估计是这个"后四个之一"理解错了,书上的意思是:Z字幕后面的4个(Z的后面四个):而你的意思是26

如何用C/C++语言 画星座图

问题描述 如何用C/C++语言 画星座图 如题,如何利用C语言画星座图. 是否要参照和翻译MATLAB中的ScatterPlot函数才可以. 谢谢. 解决方案 画星座图,你必须要有星座图的数据吧,没有数据怎么画? 有了数据,不用参考什么 MATLAB. 解决方案二: 嗯,我的意思是,在已经有数据的前提下,如何绘制星座图

对于初学者学习Java语言的建议

初学     初学者的任务是掌握Java的语言规则和养成良好的编程习惯,其次才谈到对类库使用的熟练程度,再其次是OO思想的掌握与应用,再其次就是Design Pattern的问题了.     在这里我只想介绍几个对成功完成第一个阶段很有用的资料.     以下按照循序渐进的顺序进行:     1.The Java Tutorial和它的examples:         ftp://ftp.javasoft.com/docs/tutorial.zip         ftp://ftp.java

C语言中实现图(Graph)

图(Graph)是一种较线性表和数更为复杂的数据结构,在线性表中数据元素仅有线性关系,各一个数据元素只有一个直接前驱和一个直接后继,在树形结构中,数据元素之间有着明显的层次关系,并且在每一层上的数据元素可能和下一层中多个元素相关,但只能和上一层中的一个元素相关,而在图形结构中就显得数据元素异常的自由了,在图中的任意两个元素之间可能是相关的. 首先要说的是关于图的存储方式,图中的每一个元素都是存储在一个矩阵中的,对于有向图,无向图,有向网以及无向网均是一样.... 下面就提供一种图的建立的方法范例

独家 | 6步教你用R语言制作动图

引言   数据可视化可能是数据科学领域最重要却通常最少被提及的部分.   我这么说是因为创造数据故事和可视化对你的顾客最终怎么看待你的工作有巨大的影响.数据科学不仅仅是说你的模型如何复杂或精细,它是使用基于数据的洞察力来解决问题(的范畴).并且,为了实施这些解决方案,你的领导们需要了解你的计划. 在创造有影响力的可视化进程中,挑战之一便是创造能够自己讲话的图像.这篇文章将会告知一种方式来帮你创作可使用的生动的GIF图像(即图表可交互化格式).当你想要显示基于时间或者基于循环的故事时,这种方式将对

c语言-acm关于图的问题,C语言,谢谢!

问题描述 acm关于图的问题,C语言,谢谢! [题目描述] 最近pdf又突发奇想,想再出去旅游一次.出去旅游之前当然要好好计划一番.Pdf给自己想去的地方并给它们编好了号(起点为1).为了不跟自己过不去,pdf提前找出哪些地点存在交通方便的路径,而且只会走这些路径. 为了旅途乐趣的最大化,pdf希望每个地点都到访过的同时,又保证来去都不会走重复的路,而且最终还要回到起点.问想要达到上述要求,pdf应该怎么样安排地点的访问顺序. [输入] 第一行一个整数t,表示数据组数. 每组数据的第一行两个整数

简单给初学者说说JAVA语言的几个特点

1.简单性 Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的.例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理.Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序.因为Java没有结构,数组和串都是对象,所以不需要指针.Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更

一文详解如何用 R 语言绘制热图

简介 本文将绘制静态与交互式热图,需要使用到以下R包和函数: ● heatmap():用于绘制简单热图的函数 ● heatmap.2():绘制增强热图的函数 ● d3heatmap:用于绘制交互式热图的R包 ● ComplexHeatmap:用于绘制.注释和排列复杂热图的R&bioconductor包(非常适用于基因组数据分析) 数据准备 使用R内置数据集 mtcars df <- as.matrix((scale(mtcars))) #归一化.矩阵化 使用基本函数绘制简单简单热图 主要是函