在屏幕上输出以" * "构成的菱形
来源:互联网 发布:淘宝客服主要做什么 编辑:程序博客网 时间:2024/05/20 13:18
思考思路:
1: 图像里星星最多的一行有13个' * ',其他行的' * '都是与它有一定关系的锐减(相邻两行' * '相差2)
那么我们是否可以创建一个13个元素的数组?每一行的最中间开始向两边输出' * '
2:按照这个思路,我们考虑怎么让每一行输出我们想要的' * '
/* 考虑第一行 星星出现在第7个的位置
/* 第二行 星星出现在第6 7 8 三个位置
。。。。。。。。
那么我们可以定义一个13个空格的数组,再设定字符 ' * '(后面统称星号)
/* 考虑第一行 把星号赋给第一行的第7个位置的地方 即数组的下标为6的元素
/* 第二行 星星赋给第二行6 7 8 三个位置的地方 即数组的下标为5 6 7的元素
。。。。。。。。。。
3:采用for循环,定义下标为i j ,同时从中间位置向两边输出,每次 i++,j--
那么for循环中的初始化部分该怎么写呢?
每一行中心位置在数组中的下标为6,那么i = 6 ,j = 6
循环次数的控制怎么实现?
当 i j向两边移动到最左和最右时,i = 0 ,j = 12
并且两者呈对称的!即当 i =0 时 j =12 所以只需要一个来控制就好
4:重点问题(\0的使用):
定义13个元素均为空格的数组
很多人这样定义: char arr1[13]={' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '} ;
或者
char arr1[13]=" "; // 含13个空格
兄弟姐妹们,那你们就GG拉,眼见为实
输出的结果为:
这是为什么呢?
其实很简单,字符型数组呢,vS2008在输出的时候是呢 是从数组元素的第一个数组开始输出,并且还看下一个元素是否为' \0 ',如果为'\0'则停止输出,在我们的定义中13个元素均为空格,电脑一个个查,查到最后一个空格,它发现没有'\0',那就继续输出,但是已经超出数组大小,于是就出现了乱码!
VS2008对于'\0'的处理是这样的!
当你定义一个数组
char arr[7]="abcd"; 很显然只有四个元素,我们的编程系统会默认后面的元素为'\0'
或者这样也可以定义一个四元素数组
chararr[5]={'a','b','c','d'}; 人为的在元素里面定义一个'\0'的元素,电脑查到'\0'就终止往下输出啦
代码实现:
#include<stdio.h>
int main(){
int i = 0 ,j = 0 ,a = 0 ;
char arr1[14]={' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','\0'} ; // 输入13个空格
for(i=6,j=6;j>=0;i++,j--)
{
arr1[i]='*';
arr1[j]='*';
printf("%s\n",arr1);
}
for(i=0,j=12;i<=j;i++,j--)
{
arr1[i]=' ';arr1[j]=' ';
printf("%s\n",arr1);
}
system("pause");
return 0;
}
- 在屏幕上输出以" * "构成的菱形
- 在屏幕上输出菱形
- 在屏幕上输出图案:*与空格拼出的菱形
- 在屏幕上用*输出任何长度的菱形
- 在屏幕上用“*”输出指定行数的菱形图案
- 在屏幕上输出星号组成的菱形图案。
- 在屏幕上输出一个菱形
- 在屏幕上用"*"输出菱形图案
- 在屏幕上用"*"输出菱形图案
- 输出由*构成的菱形
- C语言 在屏幕上输出菱形图案
- 在屏幕上输出一个菱形(大小可变)
- 作业:在屏幕上输出一个菱形图案
- 【C】在屏幕上输出以下图案(菱形图案)
- 在屏幕上打印菱形
- 由数字构成的菱形
- 在屏幕上输出图案
- C语言实现用星号在屏幕上打印菱形
- ISO-国际标准化组织
- linux常用几个命令?
- Andrew Stankevich Contest
- 阻止手机浏览器屏幕 上下滑动
- Codeforces Round #365 (Div. 2) D.Mishka and Interesting sum (树状数组维护异或值) ★ ★
- 在屏幕上输出以" * "构成的菱形
- MFC列表(List Control)中添加项 第二节
- java性能调优
- c++全排列函数
- jquery获取radio选中值
- XSSFilter for java
- Fast-RCNN代码解读(0)
- vlfeat说明以及matlab配置vlfeat失败的解决方式
- C语言OJ项目参考(1021)按要求输出