美文网首页
C语言经典习题(11~15)

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

作者: 十字街86号 | 来源:发表于2020-03-21 19:26 被阅读0次
题目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;
} 

相关文章

  • C语言经典习题(11~15)

    题目11 将一个正整数分解质因数。例如:88 = 2 * 2 * 2 * 11。 题目12 利用条件运算符的嵌套来...

  • C语言练习题: 数组部分

    C语言练习题:数组部分 数组实现冒泡排序(15题) 上一篇: C语言练习题:函数部分 求一正整数限定内所有素数 数...

  • [习题15]C语言:指针

    使用教材 《“笨办法” 学C语言(Learn C The Hard Way)》https://www.jiansh...

  • C语言经典习题(21~25)

    题目21 利用递归方法求n! 题目22 利用递归函数调用方式,将所输入的字符,以相反顺序打印出来。 题目23 有5...

  • C语言经典习题(16~20)

    题目16 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数...

  • C语言经典习题(6~10)

    题目6 输出9*9口诀. 题目7 打印梯形 和 旗子,旗子插再梯形上,旗子,梯子形式自己设定。 题目8 输出斐波那...

  • C语言经典习题(1~5)

    题目1: 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 题目2: 企业发放的奖金根...

  • C语言练习题: 函数部分

    C语言练习题:函数部分(9题) 上一篇: C语言练习题:循环部分 下一篇: C语言练习题:数组部分 斐波那契,函数...

  • C语言练习题:循环部分

    C语言练习题:循环部分(20题) 上一篇: C语言练习题:if语句部分 下一篇: C语言练习题:函数部分 求一正整...

  • C语言习题讲解

    1.模块化 例一:100以内素数---存储数组1.判断素数isprim()2.2-100存入新的数组 2.数据类型...

网友评论

      本文标题:C语言经典习题(11~15)

      本文链接:https://www.haomeiwen.com/subject/kxruyhtx.html