11或13的倍数 c语言,C语言13道题目.docx

C语言13道题目

这十三个题目我用的编译器是Microsoft Visual Studio中编译的所以在任何一个后面都加了两行getchar();如果你用的编译器是VC++6.0;后面两行getchar();完全可以不加。其中绿颜色的全为注释部分。编写程序,分行输出一个三位数的每一个数字,即分三行输出个位数字、十位数字、百位数字#include"stdio.h" /*头文件*/void main()/*主函数*/{int b,x,y,z;/*定义三个变量b(b用来存输入的一个三位数),x(百位数),y(十位数),z(个位数)*/scanf("%d",&b); /*从键盘输入一个三数存入变量b*/x=b/100;/*用这个三位数除以100(两个整型相除得到还是一个整型,只会取整数部分)从而得到百位数*/y=b%100/10; /*用这个三位数对100取余(取余所得的余数)用这个余数除以10(两个整型相除得到还是一个整型,只会取整数部分)从而得到十位数*/z=b%10; /*用这个三位数对10取余(取余所得的余数)从而得到个位数*/printf("个位为%d\n",z); /*输出个数上的数字*/printf("十位为%d\n",y); /*输出十数上的数字*/printf("百位为%d\n",x); /*输出百数上的数字*/getchar();getchar();}鸡与兔共100只,鸡的脚数比兔的脚数少28.问鸡与兔各几只?#include"stdio.h" /*头文件*/void main() /*主函数*/{int x;/*定义变量x(鸡的数量为x)*/for(x=0;x<=100;x++) /*循环(x的值可以从0取到100)*/{if(x+(100-x)==100 && 4*(100-x)-2*x==28) /*判断鸡兔的总数和要达到100;还有判断鸡的脚要比兔的脚少28只,要两个要求同时满足时才执行下面的输出语句*/{printf("鸡的只数为%d\n兔子的只数为%d\n",x,100-x); /*要上面条件满足时才输出鸡都数量级兔子的数量(因为鸡的数量是x,所以兔的数量就为100-x)*/}}getchar();getchar();}有30个人在饭馆吃饭,其中有男人、女人、小孩,每个男人花3块钱,女人花2块钱,小孩花1块钱,一共50块钱,问男人、女人和小孩各多少人?(男人、女人、小孩都存在)#include"stdio.h" /*头文件*/void main() /*主函数*/{int X,Y,Z; /*定义变量X,Y,Z(男人数量为X,女人的数量为Y,小孩的数量为Z)*/for(X=1;X<=15;X++) /*循环体(X的值可以从1取到16,因为前提因素是男人、女人、小孩都存在的,所以至少存在1个,而后面的条件是共只有50元,小孩、女人至少有1人存在就用了3元,而乘下的都是男人为37元,从而循环只能取1至16了,)*/{for(Y=1;Y<=23;Y++) /*循环体(Y的值可以从1取到23,因为前提因素是男人、女人、小孩都存在的,所以至少存在1个,而后面的条件是共只有50元,小孩、男人至少有1人存在就用了4元,而乘下的都是男人为46元,从而循环只能取1至23了,)*/{Z=30-X-Y; /*从上面的循环体内得出了男人及女人的数量,总人数是30人,得知小孩就为30减去男人再减去女人*/if(3*X+2*Y+1*Z==50) /*判断总钱数是否等于50元*/printf("男人%d,女人%d,小孩%d\n",X,Y,Z); /*输出每一次满足条件的结果*/}}getchar();getchar();}4、编写函数求n的阶乘n!(利用循环和递归两种方法)函数原型为 :long factn(int n)循环方法:#include"stdio.h" /*头文件*/void main() /*主函数*/{long d=factn(5); /*对自定义函数的调用*/ printf("%d\n",d);/*输出调用所得的到结果*/getchar();getchar();}long factn(int n)/*对自定义函数的说明*/{long result=1;/*定义一个长整型变量result并赋初始值为1*/int i; /*定义一个整型变量i用来控制循环体的初始值*/for (i=1; i<=n;i++) /*循环体(用n来控制阶乘的循环次数)*/{result=result*i; /*将result乘以i的值赋给result*/ }return result;}递归方法: 这个方法不解释,自己都被搞晕了。 #include"stdio.h"void main(){long d=factn(5);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值