C 语言教程 在线

1705c-exercise-example15

参考方法:

#include <stdio.h>
#define GRADE(x) (x>=90)?'A':((x>=60)?'B':'C')

int main(){
    int score;
    while(scanf("%d",&score)!=EOF){
        printf("%c\n",GRADE(score));
    }
    return 0;
}

1704c-exercise-example15

if-else 语句的嵌套结构:

#include<stdio.h>

void f13(int n){
    //成绩的合理性判断
    if(n<0||n>100){
        printf("Error!\n");
    }else{
        if(n<60){
            printf("C\n");
        }else if(n<=89){
            printf("B\n");
        }else{
            printf("A\n");
        }
    }
}

int main(){
    int n;
    printf("请输入分数: ");
    scanf("%d",&n);
    f13(n);
    return 0;
}

1703c-exercise-example14

参考方法:

#include<stdio.h>
#include <math.h>

int main() 
{
    int i = 2, m, sq;
    printf("请输入整数:");
    scanf("%d", &m);
    sq = sqrt(m);  //这个可以参考下质数的筛选方式
    while (i <= sq)
    {
        if (m % i == 0) 
        {
            printf("%d", i);
            m /= i;
            if (m != 1)
                printf("*");
        }
        else
            i++;
    }
    if (m != 1)
        printf("%d", m);
    while (getchar() != EOF)
    {
    }
}

1702c-exercise-example14

参考方法:

#include <stdio.h>

int main(){
    int n,i;
    scanf("%d",&n);
    printf("%d=",n);
    for(i=2;i<=n;i++){  //分解质因数,可以用i++是因为被2整除过后一定不能再被4整除
        while(n%i==0){
            printf("%d",i);
            n/=i;
            if(n!=1)
                printf("*");
        }
    }
    printf("\n");
    return 0;
}

1701c-exercise-example14

参考方法:

#include<stdio.h>
int main(void)
{
    int n,count = 1,num,i = 2;
    printf("请输入整数:");
    scanf("%d",&n);
    num = n;
    while(i < num)
    {
        if(n%i == 0)
        {
            if(count == 1)
                printf("%d=%d",n,i);
            else
                printf("*%d",i);
            count++;
            n = n/i;
        }
        else
            i++;
    }
    return 0;
}