空心字母菱形作业改与数组的简介及其特点

1.输入一个字母,打印出以此字母为中线向两边衍生逐行字母顺序递减的空心菱形:

include<stdio.h>

int main()
{
int a,i,b,c,d,e,f,x;
int n=1,m=2;
scanf("%c",&x);
for(i=1;i<=20;i++)
{
printf(" ");
}
printf("A\n");
int y=x;
for(a=1;a<=y-65;a++) //y-65为组成菱形上层三角形的行数减一(减去的一行为最顶端的A)
{
for(b=1;b<i-a;b++) //i-a为每行最左端到边框最左端所需空格数
{
printf(" ");
}
printf("%c",65+n); //输出(65+n)的阿斯克码值对应的字母
for(c=1;c<=2a-1;c++) //2a-1为每行中间所需的空格数
{
printf(" ");
}
printf("%c\n",65+n); //注:因为每行中间空格与所对应字母均位于同一行,因此字母的输出应不受中间空格循环的控制
n++;
}
for(d=1;d<=y-65;d++) //同理打印组成菱形的下三角形;各变量表示同上
{
for(e=1;e<b+d;e++)
{
printf(" ");
}
printf("%c",65+n-m);
for(f=1;f<=c-2*d-1;f++)
{
printf(" ");
}
if(65+n-m!=65) //注;若无if内条件最后一行输出的A将被重复输出
printf("%c\n",65+n-m);
m++;
}
return 0;
}

2.数组的简介及其特点:
产生来源
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
关于可变长数组(VLA)的问题:原来的C89标准中是不允许可变长数组出现的,但是在C99标准中,加入了对VLA的支持,但是支持的编译器不多,而且由于栈溢出的安全问题,没有太多的人敢用这个可变长数组,所以在C11标准中又把它规定为可选实现的功能了。
如果有过用其它语言编程的经历,那么想必会熟悉数组的概念。由于有了数组,可以用相同名字引用一系列变量,并用数字(索引)来识别它们。在许多场合,使用数组可以缩短和简化程序,因为可以利用索引值设计一个循环,高效处理多种情况。数组有上界和下界,数组的元素在上下界内是连续的。因为 Visual Basic对每一个索引值都分配空间,所以不要不切实际声明一个太大的数组。
此处数组是程序中声明的变量数组。它们不同于控件数组,控件数组是在设计时通过设置控件的 Index 属性规定的。变量数组总是连续的;与控件数组不同的是,不能从一个数组的中部加载或卸载数组元素。
一个数组中的所有元素具有相同的数据类型(在C、C++、Java、pascal中都这样。但也并非所有涉及数组的地方都这样,比如在Visual Foxpro中的数组就并没这样的要求)。当然,当数据类型为 Variant 时,各个元素能够包含不同种类的数据(对象、字符串、数值等等)。可以声明任何基本数据类型的数组,包括用户自定义类型和对象变量。
如果要用户输入的是一个数组,一般是用一个循环,但是在输入前也需要固定数组的大小。
compact跟变长数组没有太大的关系,也应该用不到变长数组。因为一般的传数组到函数中就是传数组的地址和元素的个数的,那只是一个提示,不是要求。
原型可以这样写(假设数组的元素是type):
1

int compact(type *Array,int Count)
数组类型说明 在C语言中使用数组必须先进行类型说明。
数组说明的一般形式为:类型说明符 数组名 [常量表达式],……; 其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。
数组就是一次性定义相同数据类型的一组变量数组定义。
举例
说明整型数组a,有10个元素。若要表示第10个元素,则使用a[9]。第一个则是a[0]。
1

int a[10];
说明实型数组b,有10个元素,实型数组c,有20个元素。
1

float b[10],c[20];
说明字符数组ch,有20个元素。
1

char ch[20];
特点
1.数组是相同数据类型的元素的集合。
2.数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
3.数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
对于VB的数组,表示数组元素时应注意:
1下标要紧跟在数组名后,而且用圆括号括起来(不能用其他括号)。
2下标可以是常量,变量,或表达式,但其值必须是整数(如果是小数将四舍五入为整数)。
3下标必须为一段连续的整数,其最小值成为下界,其最大值成为上界。不加说明时下界值默认为1。

posted @ 2020-11-17 21:42  智能2012江子豪  阅读(93)  评论(0编辑  收藏  举报