牛骨文教育服务平台(让学习变的简单)
博文笔记

c语言==一维数组与二维数组(2)

创建时间:2016-07-07 投稿人: 浏览次数:1159

今天复习了数组内容。
包括一维数组,二维数组,字符数组,字符串等内容。


一维数组

形式就是int a[常量(可缺省)]={1,2,3}

冒泡排序
设数组个数为n,则冒泡排序要比较n-1次
在某一次比较中。将其可以比较的最后一个数与前面所有的数进行比较。
最终将数组全部比较,形成升序或降序排列。

#include <stdio.h>

int main()
{
    int i;
    int j;
    int temp;

    int a[6] = {1, 4, 6, 2, 7, 0};

    for(j = 0; j < 5; j++)
    {
        for(i = 5; i > j; i--)
        {
            if(a[i-1] > a[i])
            {   
                temp = a[i];
                a[i] = a[i-1];
                a[i-1] = temp;
            }
        }
    }

    for(i = 0; i < 6; i++)
    {
        printf("%d	" , a[i]);

        if (i == 5)
        {
            printf("
");
        }
    }

    return 0;
}

输入星号三角形
首先是书上有一道题目是这样的,让我输出如下的星号三角形。
这里写图片描述
当时我想的是自己键入有多少行。
先输出前面所有的 ,再输出※,再输出※间的 ,直到输出完所有的※

但是我才疏学浅,敲不对。
于是看了书上的答案。发现他就是描述了这个图而已。在定义二维数组的时候给他初始化了,{ {……},{……},{……} }。是※就打出来,不是※就直接’ ‘,然后输出的时候一股脑输出就可以得到正确答案了。

但是我的那个方法还没有得到答案,于是我就百度了。百度上好像也没有我这样奇葩的想法。是如下的这种星号三角形。星号之间没有空格。
这里写图片描述
大概思想就是把前面的空格先输出出来,然后输出※就可以了。不需要输出※间的空格

#include <stdio.h>

int main()
{
    int i;
    int j;
    int h;

    printf("请输入三角形的高
");
    scanf("%d" , &h );

    for(i = 0; i < h; i++)
    {
        for(j = 0; j < h - i; j++)
            printf(" ");
        for(j = h - i; j < h + i + 1; j++)
            printf("*");
        printf("
");
    }

    return 0;
}

然后我又尝试了一下星号之间有空格的情况
这里写图片描述

#include <stdio.h>

int main()
{
    int i;
    int j;
    int h;

    printf("请输入三角形的高
");
    scanf("%d" , &h );

    for(i = 0; i < h; i++)
    {
        for(j = 0; j < h - i - 1; j++)
             printf("	");
        for(j = h - i - 1; j < h + i; j++)
            printf("*	");
        printf("
");
    }

    return 0;
}

二维数组

形式是 int a[][]={ {1,2,3} , {4,5,6} }

倒置二维数组
只需将行数变为列数,列数变为行数。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。