c语言==一维数组与二维数组(2)
今天复习了数组内容。
包括一维数组,二维数组,字符数组,字符串等内容。
一维数组
形式就是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} }
倒置二维数组
只需将行数变为列数,列数变为行数。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: C语言----数组(一维数组)
- 下一篇: 一维数组的初始化问题