第4周 C语言及程序设计提高例程-3 体验自定义函数

引子1-输出信息新方法

问题及代码:

void printstars();
void printmessage();
int main()
{
   printstars();
   printmessage();
   printstars();
   return 0;
}
void printstars()
{
    printf("*************\n");
}
void printmessage()
{
    printf("Hello, world.\n");
}

运行结果:


知识总结:

自定义函数的运用

学习心得:

掌握整体的编写框架,将其模块化,写出整体的流程,流程步骤中直接调用函数。

2、引子2-输出星号图

问题及代码:

#include <stdio.h>
void printstars(int m)
{
	int j;
	for(j=0;j<m;j++)//控制输入星星的个数 
	printf("*");
	return;
}
int main()
{
	int i;
	for(i=0;i<=6;i++)//控制行数 
	{
	  printstars(2*i-1);
	  printf("\n");
    }
return 0;
}
运行结果:

知识总结:

有参数的自定义函数

学习心得:

自定义函数体也可放在后面补充来写,主要刚开始的自定义函数有“;”,后面的则没有。

注意,无返回自定义函数体只需return不用0。


函数参数,让处理更加灵活

#include <stdio.h>
void printchs(int m, char ch) //定义能输出m个符号ch的函数
{
    int j;
    for (j=1; j<=m; ++j)
        putchar(ch);
}
int main()
{
    int i;
    for(i=1; i<=6; ++i)
    {
        printchs(6-i,' '); //可以自定义各种类型的字符
        printchs(2*i-1,'*') ;
        printf("\n");
    }
    return 0;
}


知识总结:

可自定义各种字符

学习心得:

注意这里用到putchar(ch)


引子3-最大公约数和最小公倍数

问题及代码:

#include <stdio.h>
int gcd(int n1,int n2);
int lcm(int n1,int n2);
int main ()
 {
	int num1,num2;
	int iGcd,iLcm;//最大公约数和最小公倍数
	printf("请输入两个数字:");
	scanf("%d %d",&num1,&num2);
	iGcd=gcd(num1,num2);
	iLcm=lcm(num1,num2);
	printf("最大公约数是:%d",iGcd);
	printf("最小公倍数是:%d",iLcm);
	return 0;
}
int gcd(int n1,int n2)
 {
 	int r;
 	while(n2!=0)//利用辗除法,直到n2为0止
	 {
	   r=n1%n2;
	   n1=n2;
	   n2=r; 
     }
   return n1;//当n2=0时跳出循环,同时返回到前一个值即n1.
 }
 int lcm(int n1,int n2)
 {
 	return n1*n2/gcd(n1,n2);//最小公倍数等于两数之积除以其最大公约数
  } 

运行结果:


知识总结:

自定义函数的具体运用,求最大公约数和最小公倍数的算法。

学习心得:

对这两个算法刚开始不是特别理解,后来又复习了一下最大公约数和最小公倍数的概念。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值