题目11
将一个正整数分解质因数。例如:88 = 2 * 2 * 2 * 11。
/*将一个正整数分解质因数。例如:88 = 2 * 2 * 2 * 11。*/
#include<stdio.h>
int main(){
int t;
printf("请输入一个数:\n");
scanf("%d",&t);
printf("%d = ",t);
int i;
for(i=2;i<=t;i++){
while(t%i==0){
printf("%d",i);
t = t/i;
if(t!=1)
printf(" * ");
}
}
return 0;
}
题目12
利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
#include<stdio.h>
int main(){
int n;
printf("请输入你的分数:\n");
scanf("%d",&n);
if(n>100||n<0){
printf("\n输入错误,请重新输入\n");
scanf("%d",&n);
}
n>=90? printf("\n判定等级为:A\n"): n>=60? printf("\n判定等级为:B\n"):printf("\n判定等级为:C\n") ;
return 0;
}
或使用 if-else 嵌套
#include<stdio.h>
void ju(int n){
printf("\n判定等级为:");
if(n>=90){
printf(" A \n");
}
else if(n>=60){
printf(" B \n");
}
else{
printf(" C \n");
}
}
int main(){
int n;
printf("请输入你的分数:\n");
scanf("%d",&n);
if(n>100||n<0){
printf("\n输入错误,请重新输入\n");
scanf("%d",&n);
}
ju(n);
return 0;
}
题目13
输入两个正整数m和n,求其最大公约数和最小公倍数。
/*
输入两个正整数m和n,求其最大公约数和最小公倍数。
(1)最小公倍数=输入的两个数之积除于它们的最大公约数,关键是求出最大公约数;
(2)求最大公约数用辗转相除法(又名欧几里德算法)
*/
#include<stdio.h>
int main(){
int x,y;
printf("请输入两个数,如(24,12)\n");
scanf("%d,%d",&x,&y);
int mul;
mul = x*y;
//判定大小
int t;
if(x<y){
t = x;
x = y;
y = t;
}
//求最大公约数
int d;
int gcd;
while(1){
if(x%y == 0){
gcd = y;
printf("最大公约数是:%d\n",gcd);
break;
}
else{
d = x%y;
x = y;
y = d;
}
}
//求最小公倍数
int lcm;
lcm = mul / gcd;
printf("最大公倍数是:%d",lcm);
return 0;
}
题目14
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
/*输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。*/
#include<stdio.h>
int main(){
char c;
printf("请输入一行字符\n");
int letters=0,spaces=0,digits=0,others=0;
while(c!='\n'){
c = getchar();
if(c>='A'&&c<='Z' || c>='a'&& c<='z')
letters++;
else if(c==' ')
spaces++;
else if(c>='0'||c<='9')
digits++;
else
others++;
}
printf("\n字母=%d,数字=%d,空格=%d,其他=%d\n",letters,digits,spaces,others);
return 0;
}
题目15
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
/*求s=a+aa+aaa+aaaa+aa...a的值,
其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),
几个数相加有键盘控制。*/
#include<stdio.h>
int main(){
int a,n;
printf("请输入两个数字:\n");
scanf("%d,%d",&a,&n);
int b = a;
int sum=0;
int d;
while(n){
d = a;
a = a*10+b;
// printf("%d\t",a);
sum = sum + d;
n--;
}
printf("\n%d",sum);
return 0;
}