C语言138页11题,C语言经典习题(11~15)

题目11

将一个正整数分解质因数。例如:88 = 2 * 2 * 2 * 11。

/*将一个正整数分解质因数。例如:88 = 2 * 2 * 2 * 11。*/

#include

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

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

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

int main(){

int x,y;

printf("请输入两个数,如(24,12)\n");

scanf("%d,%d",&x,&y);

int mul;

mul = x*y;

//判定大小

int t;

if(x

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

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

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;

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值