字母三角形c语言字母不重复,c语言实践 打印字母三角形
效果如下:
我是怎么想的:
总共需要打印6行字母,那么就需要一个循环来控制打印第几行,大概代码如下:
for(int i=0;i<6;i++)
{
}
每行都会打印字母,而且循环越往后,需要打印的字母越多,那么每行打印字母也需要一个循环,比如打印F到A这需要一个循环,其它也是同样的道理。每行打印完都需要输出一个换行,所以代码变成下面这样
for(int i=0;i<6;i++)
{
for(char j='F';XXXXX;j--)
{
}
printf("%c",j);
}
因为每行都是从F开始打印的,所以j的初始值肯定是F,有因为每次是从F往A这个方向打印的,那么肯定有j--这个操作,上面的代码不难理解。
真正难的是j=‘F’后面这个进入循环的条件,这个怎么想。
用列举法推出来的。
当i=0的时候,需要打印第一行字母,此时j='F',那么我们给j一个什么样的关系表达式,才能够让j只能取到'F'这一个值呢?
是不是j>'F'-1
char j='F',j>'F'-1;j-- j的定义域只能取到‘F’
当i=1的时候,需要打印第二行字母,也就是需要里面的循环执行两次,那么给j一个什么样的表达式,才能够让j的值渠道'F'和‘E’呢? 是不是j>'F'-2;
我们不能直接把'F'-1和'F'-2这两个表达式直接写进去,不然输出的是固定值,我们想要这两个值和i发生一定的关系
当i=0时候,我们希望j>'F'-1='F'-(0+1)
当i=1时候,我们希望j>'F'-2='F'-(1+1)
当i=3时候,我们希望j>'F'-4='F'-(3+1)
所以通项公式就是j>'F'-(i+1)
最后代码如下:
int main(void)
{for (int i = 0; i < 6; i++)
{for (char j = 'F'; j > 'F'-(i+1); j--)
{
printf("%c",j);
}
printf("\n");
}return 1;
}
update:2018.10.2
这次思考过程和上次完全不一样。
首先需要一个外层循环来控制打印的行,共需要打印6行,每循环一次打印一行数据。还需要一个内层循环控制要打印的字符
由于,内存循环每次都是从F开始打印的,所以内存循环每次都要初始化变量为F,每次打印一个字符后就让字符减去1,这样就可以打印比F小的那个字符了,那要打印多少个字符呢?我们需要用一个变量来记录,然后每进行一次外层循环这个变量的值都要+1,因为第二行要比第一行多打印一个字符。
int main(void)
{charch ;//当前要打印的字符int row_count=1;//每行需要打印额字符个数,从第一行开始intcount;//打印了几个字符了for (int i = 0; i < 6; i++,row_count++)
{for (ch='F',count = 0; count < row_count; count++,ch--)
{
printf("%c",ch);
}
printf("\n");
}return 1;
}
字母三角形c语言字母不重复,c语言实践 打印字母三角形相关推荐
- c语言输出6行三角形,c语言实践 打印字母三角形
效果如下: 我是怎么想的: 总共需要打印6行字母,那么就需要一个循环来控制打印第几行,大概代码如下: for(int i=0;i<6;i++) { } 每行都会打印字母,而且循环越往后,需要打印 ...
- 编程练习2--编写一个程序,提示用户输入大写字母。使用嵌套循环以下面金字塔型的格式打印字母:
#include"stdio.h"int main() {int row, row_all, blank, row_plus, row_minus;char ch;printf(& ...
- Problem I: 打印字母菱形图案
计算机学院c语言2017年期末考试 Problem I: 打印字母菱形图案 Description 从键盘输入一个整数n(1≤n≤10),打印出指定的数字图形. Input 正整数n(1≤n≤10). ...
- c语言输出字母abcd,有字母ABCD,请用C语言编写程序,输出由该四个字母组成的字符串.要求如下:...
有字母ABCD,请用C语言编写程序,输出由该四个字母组成的字符串.要求如下: 答案:6 信息版本:手机版 解决时间 2019-10-06 21:36 已解决 2019-10-06 01:51 1.包 ...
- c语言 字母 八进制表示'/1011',C语言C语言第一课:C语言概述为什么学习C语言怎样学习C语言.DOC...
[摘要]C语言 第一课: C语言概述 为什么学习C语言 怎样学习C语言 参考资料 ----------------------------------------------------------- ...
- C语言学习之从键盘输入任意一个字母,输出它的对应大(小)写
C语言学习之从键盘输入任意一个字母,输出它的对应大(小)写 通过键盘随意输入一个大写或小写字母,输出它对应的小写或大写字母,若不是字母则提示"输入有误!" #include < ...
- 组合学:使用10个数字与52个字母生成1477万个不重复的4位串码
使用10个数字与52个字母生成1477万个不重复的4位串码(比如应用系统流水号应用场景),那么如何实现动态生成这类串码,并保证其不重复呢? 一.主要思想(进位思想): 将0-9-A-z,62个字符做为 ...
- 打印字母对称型的金字塔图案(C语言)
题目:(c语言) 让程序要求用户输入一个大写字母,使用嵌套环产生像下面这样的金字塔图案: #include <stdio.h> #include <stdlib.h>int m ...
- c语言中计算一个字母的序数,C语言编程 输入一串字符统计英文字母的个数
C语言编程:输入一行字符,至少50个,统计其中英文字母,数字,其他字母个数 楼上那个不能统计空格个数,我这个可以#include#includeintmain(){intcnt_c=0,cnt_n=0 ...
最新文章
- JAVA 实现 快速排序算法
- data后缀文件解码_封装ThinkPHP6.0通用文件上传
- adb devices指令实例讲解
- 0109互联网新闻 | 微信推智言对话系统“小微”,接入第三方生态;华为发布首款数据中心交换机...
- IDEA 每次运行项目时都提示源值1.5已过时,将在未来所有版本中删除
- Android 之View绘图原理总结
- JDK 18 / Java 18 GA 发布
- Lync 小技巧-56-检查你用的公网证书是否正确
- 微软4月补丁星期二修复119个漏洞,含2个0day
- UIWindow的rootViewController的问题
- QT表格的宽度自适应调整方法void setStretchLastSection ( bool stretch ) 转帖
- bg、jobs、fg
- 单片机程序编写常使用的程序架构
- PostgreSQL/pgsql生成随机的姓名的函数
- php fpm listen.owner,php-fpm配置详解
- 上海Oracle用户组我的页面
- 【广告架构day1】爱奇艺广告系统的演进之路:实践中的一些经验
- Kubernetes--Pod的DNS域名和相关特性
- Java项目:医院管理系统(java+SSM+layui+maven+mysql)
- Kotlin实战案例:实现RecyclerView分页查询功能(仿照主流电商APP,可切换列表)