1.2 常量与变量-进阶练习

1. 编写一个自己的大小写转换函数char A_to_a(char a);并在主函数里面测试验证
     1). 只限于字母转换.
     2). 如果输入不是字母,增加判断使程序更加健壮.

#include <stdio.h>
char A_to_a(char a);
int main(){
    char ch;
    printf("请输入一个字符:");
    while(ch = getchar()){
        if(getchar()==10){
            if(ch<='Z' && ch>='A')
                break;
            if(ch<='z' && ch>='a')
                break;
        } else {
            while(getchar()!=10){}
        }
        printf("你输入的不是字母!请重新输入:");
    }
    ch = A_to_a(ch);
    printf("转换结果:%c\n",ch);
    return 0;
}
char A_to_a(char a){
    if(a<='Z' && a>='A')
        return a+32;
    if(a<='z' && a>='a')
        return a-32;
}

2. 编写一个函数double myround(double x);输入一个小数,将它四舍五入.例如(-3.51)的值是-4.0,myround(4.49)的值是4.0.可以调用math.h中的库函数ceil和floor实现这个函数.

#include <stdio.h>
double myround(double x);
int main(){
    float number;
    printf("请输入一个浮点数:");
    scanf("%f",&number);
    printf("四舍五入的结果是:%.1f\n",myround(number));
    return 0;
}
double myround(double x){
    int rs;
    rs = (int)x;
    x -= (double)rs;
    if(rs>=0 && x>=0.5)
        rs++;
    else if(rs<0 && x<=-0.5)
        rs--;
    return (double)rs;
}

3. 统计一个自然数的二进制表示形式中有多少个1.

#include <stdio.h>
int main(){
    unsigned int number,count=0;
    printf("请输入一个自然数:");
    scanf("%d",&number);
    while(number){
        count += number%2;
        number /= 2;
    }
    printf("二进制形式1的个数为:%d\n",count);
    return 0;
}

你可能感兴趣的:(c,基础,C语言,常亮与变量)