本文目录一览:
- 1、c语言习题,输入一个正整数,按照从高位到低位的顺序输出各位数字。怎么做
- 2、C语言习题 求键盘输入的两个正整数的最大公约数和最小公倍数
- 3、c语言试题 输入一个三位正整数,将该数的百位,十位,和个位的数分三行输出 ,并输出三位数的和
c语言习题,输入一个正整数,按照从高位到低位的顺序输出各位数字。怎么做
输入时由代码限制只能是正整数,并赋与int型变量n,否则退出;
用一个for循环计算输入之数的十进制长度,用1之后的0的个数表示并赋与临时变量t,如10000表示输入了一个4位十进制正整数;
用一个while循环先后由t/=10和n/t%10来求得从高位至低位的各位数字并输出。
代码如下:
#include "stdio.h"
int main(int argc,char *argv[]){
int n,t;
printf("Please enter a positive integer...\nn=");
if(scanf("%d",n)!=1 || n1){//保证输入是正整数,否则退出
printf("Input error, exit...\n");
return 0;
}
printf("The result are as follows:\n");
for(t=10;n/t;t*=10);//求出十进制数n的长度,用1后0的个数表示,如1000表示3位数
while(t/=10)
printf("%d ",n/t%10);//t/=10与n/t%10配合从高至低输出各位上的数字
printf("\n");
return 0;
}
运行样例如下:
C语言习题 求键盘输入的两个正整数的最大公约数和最小公倍数
#includestdio.h
#includestdlib.h
intHCF(intx,inty);//定义最大公约数函数
intLCM(intx,inty);//定义最小公倍数函数
intmain()
{
inta,b;
printf("Pleaseenter2numbers:");//输入两个整数
scanf("%d%d",a,b);
printf("HCF=%d,LCM=%d\n",HCF(a,b),LCM(a,b));//输出最大公约数和最小公倍数
system("pause");
return0;
}
//最大公约数函数(利用欧几里得算法)
intHCF(intx,inty)
{
for(intz=x%y;z!=0;x=y,y=z,z=x%y);
returny;
}
//最小公倍数函数
intLCM(intx,inty)
{
return(x*y)/HCF(x,y);
}
扩展资料
处理数组n个元素的最大公约数
#includestdio.h
#includestdlib.h
intHCF(intx,inty);
intmain()
{
intn[4],i,temp;
for(i=0;i4;i++){
printf("PleaseenterNo.%dnumber:",i+1);
scanf("%d",n[i]);
}
for(i=0,temp=n[0];i4;i++)
temp=HCF(temp,n[i]);
printf("HCF=%d\n",temp);
system("pause");
return0;
}
intHCF(intx,inty)
{
for(intz=x%y;z!=0;x=y,y=z,z=x%y);
returny;
}
c语言试题 输入一个三位正整数,将该数的百位,十位,和个位的数分三行输出 ,并输出三位数的和
只是三位数的话,下面的代码就可以了!
#includestdio.h
int main()
{
int n;
int a,b,c;
scanf("%d",n);
a=n%10;
b=n/10%10;
c=n/100;
printf("%d\n",c);
printf("%d\n",b);
printf("%d\n",a);
printf("%d+%d+%d=%d\n",c,b,a,a+b+c);
}