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
",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
",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.一つの自然数のバイナリ表現形式の中で何個あるかを統計する.
#include <stdio.h>
int main(){
    unsigned int number,count=0;
    printf("        :");
    scanf("%d",&number);
    while(number){
        count += number%2;
        number /= 2;
    }
    printf("     1    :%d
",count); return 0; }