c语言编程小实例之二-------最大公约数最小公倍数求法

c语言程序

#include<stdio.h>
int main()
{
 int a,b,t,m;
 printf("请输入您所求的两个数\n");
 scanf("%d %d",&a,&b);
 if(a>b)
 {
  t=a;
  a=b;
  b=t;
 }
 if(b%a==0)
  printf("最小公倍数是%d,最大公约数是%d\n",b,a);
    else
 {   
  int j;
  for(j=1;j<a;j++)
  {
   if((a%j==0)&&(b%j==0))
    printf("%d和%d的最大公约数是%d\n",a,b,j);
  }
  m=a*b/j;
  printf("%d和%d的最小公倍数是%d\n",a,b,m);
 }
 return 0;
}
注:scanf的用法

       scanf函数作为c语言的标准输入语句,有几个特点: 
1.格式化输入。

 既可以给定要输入的类型,再给出相应的存放变量即可;例如:scanf(“%d”,&d)即为将从输入流读取一个十进制整数(对应类型为int),

如果输入的是小数形式,则变成相应的整数;存放在变量d的内存中,相应有用的还有%c,为读字符;%f,为读小数点(float)类型,若是double型,则用%lf;

 2.支持一次输入多个变量。

即可以一次性的读取一行输入中的所有变量;应为不同的变量间是用空格(可以多个,相当于一个),制表符(实际上是8个空格),

回车符为间隔的,所以scanf最多可以一次性读取一行的变量(行最后是换行符,即回车); 
例如:scanf("%d%f",&a,&b);需要注意的是,当多个变量同时输入时,为了区别,必须在不同的变量之间采取隔离的措施,

如下:可以用空格,如:scanf(“%d %f”,&a,&b)(没有间隔的时候系统默认用空格)

这样,我们的输入的时候,要求输入量之间用空格隔开(至少一个);

但是,有时候,要求我们用特定的分隔符号,例如:scanf(“%d,%f”,&a,&b),

这时候,我们要做的就是输入的时候和特定的分隔符保持相同就好;

3.就是函数的输入参数和返回值了。

scanf的参数就是你放在括号里面的东西了;当读取工作顺利时,返回读取的参数个数;读取错误时,返回EOF,系统定义的一个宏,值是零 
    
 scanf("%3d%3d",&a,&b);  输入:123456  
系统自动将123赋给a,456赋给b,为什么 

test:

#include<stdio.h>
int main()
{
 int a,b;
 scanf("%3d%3d",&a,&b);
 printf("a=%3d,b=%3d\n",a,b);
 return 0;
}


因为:“3d”因为d前有个3,所以是3个字符啊,A是3个,B也是3个啊   
3d”因为d前有个3,所以是3个字符啊,A是3个,B也是3   
123赋给a,456赋给b,   
你就直接输入6个数就可以了

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值