【C语言程序设计】【C语言】手把手教你,多重循环、多维数组、多级指针、数组形参、指针形参。

我看了很多同学写的程序,有以下几个问题:
1.不会用函数。大部分同学函数用得不好。好的函数能把晦涩难懂的代码封装起来;代码行数不是很多;功能明显,能用在很多地方。有很多同学整个程序只有一个 main 函数,要不就是两三个函数,一个函数上百行代码,这样的程序没法调试也没法修改,这种情况属于没有掌握结构化程序设计方法,以后学习面向对象程序设计方法会遇到困难的。
2.不会用循环。大多数程序功能是由循环构成的,循环用不好,很难写出好程序。
3.不会活用打印函数 printf()。好程序是逐步调试出来的, printf() 函数用不好,怎么来确认程序是否存在逻辑错误呢?
4.不会用宏。用宏定义常量非常方便,改程序只改一个地方就行了。
5.不会用数组。数组用得活,能替代大部分数据结构,包括链表、树和图,写数组的代码量,是所有数据结构中最少的。具体怎么替代呢?
①需要存取多种数据类型怎么办?可以用指针强制类型转换啊!
②只要用指针申请内存空间创建数组,数据将要溢出时,重新申请一段更大的内存空间,把数据拷贝进去,之前的内存空间释放掉,反之亦然,可以代替链表了。
③树是有层级的,每一层级的节点都链接一个或多个下一层级节点,只要用多维数组把每个节点,链接的下一层级节点的下标,保存好就行了。
④图也是一样的,只是稍微麻烦点,需要大体分一下层级,只要用多维数组把每个节点,链接的相邻节点的下标,保存好就行了。

一、手把手教你写程序,单重循环、一维数组及形参、一级指针及形参。(高手可以跳过本节)

#include<stdio.h>

//i<UNIT 单元
#define UNIT 7

int main(void)
{
	int aiArray[UNIT] = {0,1,2,3,4,5,6};
	int i;

	for(i=0; i<UNIT; i++)
		printf("%d", aiArray[i]);

	return 0;
}

程序运行结果如下:


构图太死板,不方便观察,需要改一下:

#include<stdio.h>

//i<UNIT 单元
#define UNIT 7

int main(void)
{
	int aiArray[UNIT] = {0,1,2,3,4,5,6};
	int i;

	printf("%s", "\n\n");
	for(i=0; i<UNIT; i++)
		printf("\t%d", aiArray[i]);

	printf("%s", "\n\n\n\n");

	return 0;
}

程序运行结果如下:

这样就美观多了,'\t' 是制表符,相当于多个空格,接下来我们用循环来给数组赋值:

#include<stdio.h>

//i<UNIT 单元
#define UNIT 7

int main(void)
{
	int aiArray[UNIT];
	int i;

	for(i=0; i<UNIT; i++)
		aiArray[i]=i;

	printf("%s", "\n\n");
	for(i=0; i<UNIT; i++)
		printf("\t%d", aiArray[i]);

	printf("%s", "\n\n\n\n");

	return 0;
}

for(i=0; i<XXX; i++) 这个语句可以作为一种模式来使用,复制粘贴就行,尽量不用破坏这个结构。
我们可以把打印数组的代码用函数封装起来,顺便看一下一维数组形参的用法:

#include<stdio.h>

//i<UNIT 单元
#define UNIT 7

// 形参方括号内的数据可以省略,这两种用法都可以
//void Array_print(int aiArray[UNIT])
void Array_print(int aiArray[])
{
	int i;

	printf("%s", "\n\n");
	for(i=0; i<UNIT; i++)
		printf("\t%d", aiArray[i]);

	printf("%s", "\n\n\n\n");
}

int main(void)
{
	int aiArray[UNIT];
	int i;

	for(i=0; i<U
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值