第4回の演習の解答例

(1) 半径rを入力し,球の体積・表面積を求めるプログラム


/*///////////////////////*/
/*    2008_4kadai1.c     */
/*///////////////////////*/

#include <stdio.h>
void main()
{
	float r,V,S;					/*変数の定義(わかりやすい変数名を使うとプログラム全体がわかりやすくなる)*/

	printf("半径rの球の体積と表面積を求めます.¥n");

 	printf("球の半径 r : "); scanf("%f",&r);		/*球の半径rの入力(変数と入力の型に気をつけること)*/
 	V=4.0*3.14*r*r*r/3.0;				/*以下,球の体積と表面積の計算*/
 	S=4.0*3.14*r*r;

 	printf("球の体積は%f,表面積は%fです.¥n",V,S);		/*体積と表面積の表示*/

}

(2) テストの点数を入力し,成績判定をするプログラム


/*///////////////////////*/
/*    2008_4kadai2.c     */
/*///////////////////////*/

#include <stdio.h>
void main()
{
 	int score;

 	printf("テストの点数を入力してください¥n");

 	printf("点数 : "); scanf("%d",&score);

 	if(score>=90){						/*以下,成績判定*/
		printf("判定はS¥n");
	}else if(score>=80){
		printf("判定はA¥n");
	}else if(score>=70){
		printf("判定はB¥n");
	}else if(score>=60){
		printf("判定はC¥n");
	}else{
		printf("判定はF¥n");
	}

}

(3) 整数nを入力し,その値が正負及び偶数・奇数か判定するプログラム


/*///////////////////////*/
/*    2008_4kadai3.c     */
/*///////////////////////*/

#include <stdio.h>
void main()
{
 	int n;

 	printf("n="); scanf("%d",&n);

 	if(n==0){
		printf("入力された数は0です.¥n");
	}else if(n>0){							/*正負の判定*/
		if(n%2==0){
			printf("入力された数は正で偶数です.¥n");		/*偶奇の判定*/
		}else{
			printf("入力された数は正で奇数です.¥n");
		}
	}else {
		if(n%2==0){
			printf("入力された数は負で偶数です.¥n");
		}else{
			printf("入力された数は負で奇数です.¥n");
		}
	}
}

(4) 西暦を入力し,うるう年かどうか判定するプログラム


/*///////////////////////*/
/*    2008_4kadai4.c     */
/*///////////////////////*/

#include <stdio.h>
void main()
{
 	int year;

 	printf("西暦何年ですか?"); scanf("%d",&year);

 	if((year%4==0 && year%100!=0) || year%400==0){		/*論理演算子を用いた判定*/
		printf("うるう年です.¥n");
	}else{
		printf("うるう年ではありません.¥n");
	}

}

(5) 何時間,何分,何秒と3つの整数を入力すると,秒数に換算するプログラム


/*///////////////////////*/
/*    2008_4kadai5.c     */
/*///////////////////////*/

#include <stdio.h>
void main()
{
 	int h,m,s;

 	printf("何時間?"); scanf("%d",&h);
 	printf("何分?"); scanf("%d",&m);
 	printf("何秒?"); scanf("%d",&s);

 	printf("秒数に変換すると%d秒です.¥n",h*3600+m*60+s);

}

(6) A君とBさんがじゃんけんをして,二人の手を入力すると,どちらが勝ったのかを判定するプログラム


/*///////////////////////*/
/*    2008_4kadai6.c     */
/*///////////////////////*/

#include <stdio.h>
void main()
{
 	int a,b;

 	printf("a君とb君がじゃんけんします.¥nグー : 1 チョキ : 2 パー : 3¥n");

 	printf("a君は何を出しますか?¥n"); scanf("%d",&a);
 	printf("b君は何を出しますか?¥n"); scanf("%d",&b);

 	if(a==1 && b==2){
		printf("a君が勝ちです.¥n");
	}else if(a==1 && b==3){
		printf("b君が勝ちです.¥n");
	}else if(a==2 && b==1){
		printf("b君が勝ちです.¥n");
	}else if(a==2 && b==3){
		printf("a君が勝ちです.¥n");
	}else if(a==3 && b==1){
		printf("a君が勝ちです.¥n");
	}else if(a==3 && b==2){
		printf("b君が勝ちです.¥n");
	}else{
		printf("あいこです.¥n");
	}
}

(7) 2次方程式の係数を入力し,判別式の値を求め,解をもつかどうか判定するプログラム


/*///////////////////////*/
/*    2008_4kadai7.c     */
/*///////////////////////*/

#include <stdio.h>
void main()
{
 	float a,b,c,D;

 	printf("a="); scanf("%f",&a);
 	printf("b="); scanf("%f",&b);
 	printf("c="); scanf("%f",&c);

 	D=b*b-4*a*c;

 	if(D>0){
		printf("2つの実数解¥n");
	}else if(D==0.0){
		printf("重解¥n");
	}else{
		printf("2つの虚数解¥n");
	}
}

(8) 1日の作業時間を入力し,アルバイト料を求めるプログラム


/*///////////////////////*/
/*    2008_4kadai8.c     */
/*///////////////////////*/

#include <stdio.h>
void main()
{
 	int hour;

 	printf("作業時間=¥n"); scanf("%d",&hour);

 	if(hour<=7){
		printf("給料は¥¥%dです.¥n",hour*850);
	}else if(hour>7 && hour<=10){
		printf("給料は¥¥%dです.¥n",7*850+(hour-7)*900);
	}else{
		printf("給料は¥¥%.0fです.¥n",(7*850+3*900+(hour-10)*1000)*1.2);
	}
}