C语言丨函数和模块化设计

易错

  1. void f(void){…}的函数正确调用形式:f().
  2. 在C语言中,函数的隐含存储类别是extern.局部变量默认为auto型.
  3. 对于全局变量,如果在函数中被修改了值,则全局变量的值被改变,在其他函数中被访问时是被修改后的值,如下段代码,运行结果为max=9,min=8.
#include <stdio.h>
int max;
int fun(int a,int b)
{
    int min;
    max=a>b?a:b;
    min=a<b?a:b;
    return min;
}

void mian()
{
     int a=9,b=8;
     printf("max=%d,min=%d\n",max,fun(a,b)); 
} 

程序设计

1、选出能被3整除且至少有一位是5的两位数的整数,输出所有满足条件的数以及其个数.

#include <stdio.h>
int Sub(int k,int n)
{
    int a1,a2;
    a2=k/10;//a2为k的十位数
    a1=k-a2*10;//a1为k的个位数
    if(a2==5||a1==5&&k%3==0)
    {
        printf("%4d",k);//打印出被3整除且至少有一位是5的两位数整数
        n++;//计数
        return n;
    }
    else
        return -1;
}

int main()
{
    int n=0,k,m;
    for(k=10;k<100;k++)
    {
        m=Sub(k,n);
        if(m!=-1) n=m;//符合条件值更新,不符合时不变
    }
    printf("n=%d\n",n);
    return 0;
}

2、设计函数MinCommonMultiple(),计算两个正整数的最小公倍数.

#include <stdio.h>
int MinCommonMultiple(int a,int b);

int main()
{
    int a,b,x;
    printf("input a,b:");
    scanf("%d,%d",&a,&b);
    x=MinCommonMultiple(a,b);
    
    if(x!=-1) 
        printf("MinCommonMultiple=%d\n",x);
    else
        printf("input error!\n");
        
    return 0;    
}

int MinCommonMultiple(int a,int b)
{
    int i;
    if(a<=0||b<=0) return -1;
    for(i=1;i<b;i++)
         if(i*a%b==0) return i*a;//i为a和b的最小公约数
    return a*b;//a和b没有公约数     
}

3、求两个数的最大公约数.

#include <stdio.h>
int main()
{
    int x,y,r;
    scanf("%d,%d",&a,&b);
    do{
        r=x%y;
        x=y;
        y=r;
    }while(r!=0);
    printf("MaxCommonFactor is %d",x);
    return 0;
}

4、求一个整数的逆序数.

#include <stdio.h>
int main()
{
    int n,n_r=0;
    scanf("%d",&n);
    while(n!=0)
    {
        n_r=n_r*10+n%10;
        n=n/10;
    }
    printf("revert number is %d",n_r);
    return 0;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值