1.利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
60分以下的用C表示。
#include <stdio.h>
int main()
{
int age;
char a;
printf("请输入学习成绩:");
scanf("%d",&age);
a=age>=90?'A': (age>=60?'B':'C');
printf("学习成绩为%d分,得%c",age,a);
return 0;
}
2.输入两个正整数m和n,求其最大公约数和最小公倍数。
首先我们要知道最大公约数和最小公倍数的定义。
最大公因数,也称最大公约数,指两个或多个整数共有约数中最大的一个。
两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。
当我们知道了最大公因数,那么最小公倍数就等这两个数相乘除以最大公因数就是这两个数的的最小公倍数。
#include <stdio.h>
//求两个正整数的最大公约数和最小公倍数
int main()
{
int n=0,m=0,max=0,min=0,gy=0,gb=0;
int i;
printf("请输入两个正整数:");
scanf("%d %d",&n,&m);
if(m>n)
{
max=m;
min=n;
}
else
{
max=n;
min=m;
}
for(i=1;i<=min;i++)
{
if((max%i==0)&&(min%i==0))
gy=i;
}
gb=n*m/gy;
printf("最大公约数为:%d\n",gy);
printf("最小公倍数数为:%d",gb);
return 0;
}
3.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
#include <stdio.h>
int main()
{
int a,b,c;
for(a=1;a<5;a++)//三重循环
for(b=1;b<5;b++)
for(c=1;c<5;c++)
{
if(a!=b&&a!=c&&b!=c)//确保三位互不相同 ,
printf("%d %d %d \n",a,b,c);
}
return 0;
}