您的位置:首页 > 编程语言 > C语言/C++

初次写博客

2016-03-14 00:00 253 查看
不知道在哪看到的,说学一种语言可以经常把所学的东西写到博客上,有利于学习,于是我就来咯!不知道能坚持多久哈,也不知道能发掘多少值得写的东西。哈哈哈哈!

目前学的是C语言啦,说到学这门语言也是形势所迫,大四,马上就待业了,期待的职业是嵌入式软件开发,就到处找工作咯,然后就各种碰壁,C语言面试题一设计什么指针啊,结构体啊就晕了了,再问什么线程通信啊,直接懵逼,好吧,我是自动化专业的,就大一学了点C语言好吗,没办法,再学一遍呗。参考的教材是《一站式学习C语言》(.PDF@_@)。今天敲了一下午代码,收货还是很大的,让我领略到为什么说数学专业的学生在编程方面会比较有造诣。



这道题花了我不少时间,感觉像是挺简单(也确实挺简单^_^),貌似大一的时候做过这种题,但是这次分析的时候不知道是怎么了,脑子里一直是这样的:



好吧,那就解数学题吧,当然是在橘色区域答应出你想要的符号咯,四个小三角就打印空格呗,试了半天一个符号加一个空格可以显得比较美观, 剩下的地方打印两个空格,关键就在那四条边怎么用i和j表达出来,我是这么弄得

1+length/2+1) && (i+j) <= (1+length/2+length) && (i-j) <= length/2 && (i-j) >= -length/2


草稿纸上弄了半天好吧。最后封装成一个函数,代码如下啦:

void diamond(int length, char symbol)
{
int i, j;
printf("\n\n");
for (i = 1; i <= length; i++)
{
for (j = 1; j <= length; j++)
if ( (i+j) >= (1+length/2+1) && (i+j) <= (1+length/2+length) && (i-j) <= length/2 && (i-j) >= -length/2)
printf("%c ",symbol);
else
printf("  ");
printf("\n");
}
printf("\n\n");
}


说一下需要注意的地方吧,一开始想法不够严谨,总想着在那些需要的地方打印出符号来就好了,以为空格会理所当然的出现在你得屏幕上,没有写else语句,导致打印出这样的东西:



好在最后是发现了,完整的代码贴在下面了:

#include<stdio.h>

void diamond(int length, char symbol) { int i, j; printf("\n\n"); for (i = 1; i <= length; i++) { for (j = 1; j <= length; j++) if ( (i+j) >= (1+length/2+1) && (i+j) <= (1+length/2+length) && (i-j) <= length/2 && (i-j) >= -length/2) printf("%c ",symbol); else printf(" "); printf("\n"); } printf("\n\n"); }

int main(void)
{
int length;
char symbol;
printf("This program will print a diamond, and you can make customization.\n");
printf("Now, input a symbol,ex-> * + - @ \n");//一看就是学鸟哥的@_@
scanf("%c",&symbol);
printf("Then, input the lenth:\n");
scanf("%d",&length);
if (length % 2 == 0 || length > 73) //73为屏幕一行最多显示的字符
printf("ERROR! Please input a odd number less than 73!\n");
else
diamond(length,symbol);
return 0;
}


可爱的菱形:



代码风格不太好,先将就着吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 嵌入式软件