一、输入一个整数,然后以倒序的方式输出来。
#include<stdio.h>
int order(int a){
if(a<=0){
return 0;
}
while((a/10)!=0){
printf("%d\t",a%10);
a = a/10;
}
printf("%d\n",a);
return 1;
}
void main(){
int a = 0;
printf("请输入一正整数:");
scanf("%d",&a);
printf("倒序的结果是:\n");
order(a);
}
下图是一个例子:
二、求一个正整数的阶乘。
int factorial(int factor){
if(factor/2>0){
return factor*factorial(factor-1);
}else{
return 1;
}
}
void main(){
int a = 0;
printf("请输入一个数:");
scanf("%d",&a);
int b = factorial(a);
printf"%d的阶乘是:%d\n",a,b);
}
输出结果如下图:
三、输入任意个正整数,以-1结束输入。求出输入的最大值和最小值。
void V(){
cout<<"请输入任意几个正整数,以-1结束:"<<endl;
int count = 0,max=0,min=0;
int digits = 1;
while (digits!=-1){
scanf("%d",&digits);
if(digits>max){
max = digits;
}
if(digits<min && digits>=0){
min = digits;
}
}
printf("最大的数是:%d\n最小的数是:%d\n",max,min);
}
void main(){
V();
}
小作者输入的数字如下截图:
四、输入两个数,求最大的公约数和最小的公倍数。(说明:如果有零则最大公约数等于最小公倍数等于零)
void approximate(int a,int b,int &max,int &min){
if(a<=0 || b<=0){
return;
}
if(a<b){
int temp;
temp = a;
a = b;
b = temp;
}
if(a%b==0){
max = b;
min = a;
return;
}
for(int i=b-1;i>0;i--){
if((a%i)==0 && (b%i)==0){
max = i;
int n = 2;
while(i*n){
if((i*n)%a==0 && (i*n)%b==0){
min = i*n;
return;
}
n++;
}
}
}
}
void main(){
printf("请输入两个数,得出最大的公约数:\n");
int a = 0,b=0,max=0,min=0;
scanf("%d",&a);
scanf("%d",&b);
approximate(a,b,max,min);
printf("最大公约数是:%d\n最小公倍数是:%d\n",max,min);
}
下面是运行的结果: