C语言判断之if
1、一般形式
- (1)
if(真条件){
语句
}
- (2)
if(条件)
{语句1 }
else
{语句2 }
2、原理探究
第一种:当条件为真时,执行语句。
第二种:如果 if 的条件为真,执行语句1,否则执行 else 的语句2。
3、示例+复习
- 三色球问题:一个口袋中放有12个球,已知其中3个是红的,3个是黄的,
- 6个是绿的,现从中任取8个,问共有多少种可能的颜色搭配?
- 绿球不能取0/1;红球和黄球总共才6个。不能满足8个
- 绿球个数取8-red-green,且小于7个
//C语言
void main()
{
int red = 0;
int yellow = 0;
int number = 1;
printf("\t红球\t黄球\t绿球\n");
printf("\n");
for (red= 0; red <= 3; red++)
{
for (yellow= 0; yellow<= 3; yellow++)
{
if (8 - red- yellow <= 6)
{
printf("%2d:\t%d\t%d\t%d\n", number, red, yellow, 8 - red - yellow);
number++;
}
}
}
system("pause");
}
- 百钱百鸡问题
- 小鸡的数量一定是3的倍数。
//C语言
#include<stdio.h>
#include<stdlib.h>
void main() {
printf("您的买鸡计划如下:\n");
int i=0;
int j=0;
int k=0;
int num = 1;
for (i=0; i<=100;i++) {
for (j=0; j<=100;j++) {
for (k=0; k<=100;k++) {
if (5*i+3*j+k/3==100&&k%3==0&&i+j+k==100) {
printf("%d· 公鸡%d只 母鸡%d只 小鸡%d只\n",num,i,j,k);
num++;
}
}
}
}
system("pause");
}
- 1000~2000的闰年
//C语言
#include<stdio.h>
#include<stdlib.h>
void main() {
int year = 1000;
for (year = 1000; year <= 2000; year ++) {
if (((year % 4)==0 && (year % 100)!=0) || (year % 400) == 0)
printf("%d\t", year);
}
system("pause");
}
- 求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。
//C语言
//求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,
//其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。
#include<stdio.h>
#include<stdlib.h>
void main(){
for (int num = 0; num < 1000; num++) {
int a = num / 100;
int b = num /10 % 10;
int c = num % 10;
if (num == a * a*a + b * b*b + c * c*c) {
printf("%d ",num);
}
}
system("pause");
}
- 求两个数的最大公约数。
//C语言
#include<stdio.h>
#include<stdlib.h>
void main() {
printf("请输入2个数:\n");
int a, b;
scanf_s("%d %d",&a,&b);
if (a <= b) {
int i;
for (i = a; i > 0; i--) {
if( (a%i) == 0&&(b%i) == 0)
break;
}
printf("最大的公约数:%d\n",i);
}
else
{
int i;
for ( i=b; i > 0; i--) {
if ((a%i) ==0&&(b%i) == 0)
break;
}
printf("最大的公约数:%d\n",i);
}
system("pause");
}