本文目录
一、最大公约数
// 判断两个数的最小公倍数
// 求两数的最小公倍数
#include<stdio.h> //头文件
int main() //主函数
{
int i,j,n,val; //定义整型变量
printf("请输入两个数:"); //提示语句
scanf("%d %d", &i, &j); //键盘输入两个数
for(n=i;n<i*j;n++)
{
if(n%i==0 && n%j==0)
break;
}
printf("%d和%d的最小公倍数为%d\n",i,j,n);
return 0;
}
二、两个数的最小公倍数和最大公约数
两个数的最小公倍数和最大公约数
//[【3】判断两个数的最大公约数和最小公倍数
#include<stdio.h> //头文件
int main() //主函数
{
int i,j,n,val; //定义整型变量
printf("请输入两个数:"); //提示语句
scanf("%d %d", &i, &j); //键盘输入两个数
for(n=i;n>0;n--)
{
if(i%n==0 && j%n==0)
{
val=i*j/n;
break;
}
}
printf("%d和%d的最大公约数为%d\n",i,j,n);
printf("%d和%d的最小公倍数为%d\n",i,j,val);
return 0;
}
三、求100~1000内的水仙花数
100~1000内的水仙花数
//[【2】判断100~1000内的水仙花数
#include <stdio.h>
int main()
{
int a,b,c,val1,val2;
for(a=1;a<10;a++)
{
for(b=0;b<10;b++)
{
for(c=0;c<10;c++)
{
val1=100*a+10*b+c;
val2=a*a*a+b*b*b+c*c*c;
if(val1==val2)
{
printf("水仙花数有: ");
printf("%d\n",val2);
}
}
}
}
return 0;
}
//水仙花数的第二种方法
#include <stdio.h>
int main()
{
int a,b,c,i;
for(i=100;i<=999;i++) //水仙花为三位数,让i在100~999以内循环
{
a=i/100; //取百分位数,除以100取商
b=i/10-a*10; //取十分位,
c=i%10; //直接取余数,得到各位
if(i==a*a*a+b*b*b+c*c*c) //判断三者的立方是否等于原来的数,如是,执行{}中语句,输出i,不换行,逗号隔开
{
printf("%d,",i); //输出i
}
}
return 0;
}
四、判断闰年
#include <stdio.h>
int main()
{
int year;
printf("please input a year: ");
scanf("%d",&year);
if((year%4==0&&year%100!=0||year%400==0)) //if条件语句判断,
{
printf("%d是闰年",year);
}
else
{
printf("%d不是闰年\n",year);
}
return 0;
}
五、输入10个数排序
#include<stdio.h>//头文件
int main()//主函数
{
printf("请输入10个数\n");
int a[10]; //定义整型数组,数组的长度为10
int i,j,m;
float sum=0.00,average; //定义浮点型变量
for(i=0;i<10;i++) //遍历10次,获取输入的10个值
{
scanf("%d",&a[i]); //获取键盘录入的10个值
}
for (i=0;i<10;i++)
{
m=a[i]; //循环10次,将数组中a[0]——a[10]的值的不断赋给m
j=i-1; //将i-1的值赋给j
while((a[j]<m)&&(j>=0)) //当a[j]的值小于m
{
a[j+1] = a[j]; //当a[j]的值小于m,将a[j+1]对应的数组中的值赋给
j=j-1; //让j自减
}
a[j+1]=m; //再将m的值赋给a[j+1],直至循环10次后结束
}
printf("从大到小的排序结果:");
for(i = 0;i<10;i++)
{
printf("%d ",a[i]);
sum=sum+a[i];
average=sum/10;
}
printf("\n这十个数的和为: %0.2f",average);
}
六、输入10个数排序——冒泡法
#include<stdio.h>
int main()
{
int i,j,t,a[10];
printf("请连续输入10个数:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(j=0;j<10;j++)
{
for(i=0;i<10-j;i++)
{
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
printf("按照从小到大进行排序");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}
七、九九乘法表输出
#include<stdio.h>
int main()
{
int i,j,n;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%0.2d ",i,j,i*j);
}
printf("\n");
}
return 0;
}
八、斐波拉杰数列
//斐波拉杰数列
#include<stdio.h>
int main()
{
int i,f[20]={1,1},sum=0;
printf("各项数值分别为:");
for(i=0;i<20;i++)
{
f[i+2]=f[i+1]+f[i];
printf("%d ",f[i]);
sum=sum+f[i];
}
printf("\n");
printf("前20项和%d",sum);
return 0;
}
九、100钱可以买5块的公鸡、3块的母鸡、1块三个小鸡各多少只
#include<stdio.h> //头文件
int main() //主函数
{
int x,y,z,i; //定义整型变量
printf("公鸡、母鸡、小鸡的只数分别为:\n");
for(x=0;x<=20;x++) //公鸡最大只数100/5=20只
{
for(y=0;y<=33;y++) //公鸡最大只数100/3=33只
{
z=100-x-y;
i=5*x+3*y+z*1/3;
if(i==100 && z%3==0)
{
printf("%2d %2d %2d\n",x,y,z);
}
}
}
return 0;
}
十、鸡兔同笼
#include<stdio.h> //头文件
int main() //主函数
{
int x,y,i; //定义整型变量
for(x=0;x<=13;x++) //兔子最大只数52/4=13只
{
for(y=0;y<=20-x;y++)
{
i=4*x+2*y;
if(i==52 && x+y==20)
{
printf("兔和鸡的只数分别为%d %d\n",x,y);
}
}
}
return 0;
}
十一、阶乘求和
//阶乘求和
#include <stdio.h>
int main()
{
int i,sum=0,a=1;
i=1;
for(i=1;i<=20;i++)
{
a=i*a; //阶乘表达式
sum=sum+a; //求和
}
printf("%d\n",sum);
return 0;
}
十二、随机输入一个数求n项和
//随机输入一个数求n项和
#include<stdio.h>
int main()
{
int i = 0,sum=0,n;
printf("请依次输入一个正整数n:\n");
scanf("%d", &n);
for (i = 0; i <=n; i++)
{
sum=sum+i;
}
printf("%d\n",sum);
return 0;
}
十三、2~100间的质数
//2~100间的质数
#include<stdio.h>
int main()
{
int i,j,n;
for(i=2;i<100;i++)
{
for(j=2;j<i;j++)
{
n=0;
if(i%j == 0)
{
n=1;
break;
}
}
if(n==0)
{
printf("%d ",i);
}
}
return 0;
}
十四、杨辉三角输出8行
#include<stdio.h> //头文件
int main() //主函数
{
int i,j,a[8][8]={0};
for(i=0;i<=8;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<8;i++)
{
for(j=1;j<=i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(i=0;i<8;i++)
{
for(j=0;j<=i;j++)
{
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
十五、完数(一个数等于其因子之和)
eg:6=1+2+3;28=1+2+4+7+14;
//完数
#include<stdio.h> //头文件
int main() //主函数
{
int i,j,sum=0;
for(i=2;i<100;i++)
{
sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum=sum+j;
}
}
if(sum==i)
{
printf("%d",i);
printf("\n");
}
}
return 0;
}