C语言的课就要结束了,但是编程没有结束!
c语言中最基本的循环结构都介绍完了,但离真正运用他们尚需一些时日。。。
今天发些自己写的打星星的代码,请大家指教:
#include <stdio.h>
#define N 20 // N 代表行宽,列宽
// 时间:2012-4-27 0:11:55
// 作用:打印三角形
// 说明:要打印上下对称的两个图形,如果使用的是for循环,则只需将for语句改变下顺序就行(倒序输出)
int main()
{
int i, j;
// 1.打印 ◣
for(i=0; i<N; i++)
{
for(j=0; j<=i; j++)
{
printf("*");
}
printf("\n");
}
printf("-----------------------\n");
// 2.打印 ◤
for(i=0; i<N; i++)
{
for(j=N-1; j>=i; j--)
{
printf("*");
}
printf("\n");
}
printf("-----------------------\n");
// 3.打印◢ 或 △
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
{
if(j<(N-1)-i)
printf(" ");
else
printf("*"); //此句变成printf("* "); 则可以打印正三角形
printf输出格式matlab }
printf("\n");
}
printf("-----------------------\n");
// 4.打印◥ 或 ▽
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
{
if(j>=i)
printf("*");//此句变成printf("* "); 则可以打印倒三角形
else
printf(" ");
}
printf("\n");
}
printf("-----------------------\n");
// 5.打印实心正三角形△
for(i=0; i<N/2; i++)
{
for(j=0; j<N; j++)
{
if(j<N/2-i || j>N/2+i)
printf(" ");
else
printf("*");
}
printf("\n");
}
// 打印实心倒三角形
for(i=N/2-2; i>=0; i--)
{
for(j=0; j<N; j++)
{
if(j<N/2-i || j>N/2+i)
printf(" ");
else
printf("*");
}
printf("\n");
}
printf("-----------------------\n");
// 6.打印空心菱形◇
// 打印高度为N(偶数)-1 或 N(奇数)-2
// 打印菱形上部
for(i=0; i<N/2; i++)
{
for(j=0; j<N/2-1-i; j++) // 控制第一次打空格的个数
printf(" ");
printf("*"); // 空格打完直接打星
for(j=0; j<2*i-1; j++) // 控制第二次打空格的个数
printf(" ");
if(i!=0) // 控制第二次打星
printf("*");
printf("\n");
}
// 打印菱形下部
for(i=N/2-2; i>=0; i--)
{
for(j=0; j<N/2-1-i; j++)
printf(" ");
printf("*");
for(j=0; j<2*i-1; j++)
printf(" ");
if(i!=0)
printf("*");
printf("\n");
}
return 0;
}
老师还提到了冒泡排序法,很简单,这里介绍一个讲解各种排序方法的网站,有源代码,应该是用matlab编写的,很不错的!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论