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编写的,很不错的!