C言語プログラミングテーマ(実用経典)6


  • 学習成績>=90点の生徒はaで学習成績が60-89の生徒はbで60点以下はcで
     #define _CRT_SECURE_NO_WARNINGS
     #include 
     #include 
     
     int main(){
     	int score;
     	char grade;
     	printf("        (0-100): ");
     	scanf("%d", &score);
     	if (score >= 90 && score <= 100){
     		grade = 'a';
     	}
     	else if (score < 90 && score >= 60){
     		grade = 'b';
     	}
     	else if (score >= 0 && score < 60){
     		grade = 'c';
     	}
     	else {
     		printf("      !
    "); } printf(" %d %c
    ", score, grade); system("pause"); return 0; }
  • を表す.
    条件演算子のネストでコード量を減らすことができます
    #define _CRT_SECURE_NO_WARNINGS
    #include 
    #include 
    
    int main(){
    	int score;
    	char grade;
    	printf("        (0-100): ");
    	scanf("%d", &score);
    	grade = score >= 90 ? 'a' : (score >= 60 ? 'b' : 'c');
    	printf("   %d      %c
    ", score, grade); system("pause"); return 0; }


  • 2つの正の整数mとnを入力して、その最大公約数と最小公倍数を求めます
    #define _CRT_SECURE_NO_WARNINGS
    #include 
    #include 
    
    //       m n,             
    int main(){
    	int m, n;
    	int a, b;
    	int tmp;
    	printf("        : ");
    	scanf("%d %d", &m, &n);
    	if (m >= n){
    		a = m;
    		b = n;
    	}
    	else {
    		a = n;
    		b = m;
    	}	//     a,   b
    	while (b != 0){
    		tmp = a % b;
    		a = b;
    		b = tmp;
    	}
    	printf("      %d
    ", a); printf(" %d
    ", m * n / a); system("pause"); return 0; }


  • 英字、スペース、数字、その他の文字の個数をそれぞれ集計する行文字を入力します.
    #define _CRT_SECURE_NO_WARNINGS
    #include 
    #include 
    
    int main(){
    	int letter = 0; 
    	int space = 0;
    	int digit = 0;
    	int character = 0;
    	char c;
    	printf("        : ");
    	while ((c = getchar()) != '
    '){ if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')){ ++letter; } else if (c == ' '){ ++space; } else if (c >= '0' && c <= '9'){ ++digit; } else { ++character; } } printf(" :%d
    ", letter); printf(" :%d
    ", space); printf(" :%d
    ", digit); printf(" :%d
    ", character); system("pause"); return 0; }