解答例 6-1-1

【問1】

#include <stdio.h>

int main( void )
{
	int a, b;

	printf( "整数値を2つ入力 " );
	scanf( "%d", &a );
	scanf( "%d", &b );

	if ( a>10 )
		printf( "aは10より大きい\n" );
	else
		printf( "aは10以下\n" );

	if ( a == b )
		printf( "aとbは等しい\n" );

	if ( b >= 10 ) {
		printf( "bは10以上\n" );
		a = 0;
		b = 0;
	}
	else {
		printf( "bは10より小さい\n" );
		a = a + 1;
		b = b + 1;
	}
	printf( "a = %d \t b = %d\n", a, b );

	return 0;
}

【問2】

#include <stdio.h>

int main( void )
{
	char ch;
	
	printf( "文字を入力しなさい" );
	scanf( "%c", &ch );
	
	if ( ch >= 'A' && ch <= 'Z' ) {
		ch = ch + ( 'a' - 'A' );
	}
	printf( "ch = %c\n", ch );
	
	return 0;
}
(注)
ASCIIコードではアルファベットの
 小文字は 'a':97 'b':98 'c':99 ・・・ 'z':122
 大文字は 'A':65 'B':66 'C':67 ・・・ 'Z':90
というように順にコードが割り当てられています。

つまり、大文字を小文字に変換する場合には、大文字それぞれに小文字との
差分「32」を加えればよいことになります。
それを、ストレートに ch = ch + 32; とはせずに、大文字と小文字の差分を
加えるのだということを明確にするために ch = ch + ( 'a' - 'A' ); としました。

ただし、このような計算により大文字を小文字に変換できるのは、ASCIIコードのように
大文字と小文字のコードの差が一定のときに限られます。
学習が進んだ段階では、tolower関数を用いるようにしてください。

戻る


banner初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved