第7回演習の解答例


(1) 1から入力した値nまでの和を求めるプログラムをfor文で作成せよ

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

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

	sum = 0;
 
	for(i=1; i<=n; i++) {
		sum += i;
	}
 
	printf("和は%dです.¥n", sum);
}

(2) (1)を応用して,データ(例えば実験データなど)の件数 n を整数で入力し,続いてその件数分データを入力すると,   データの合計と平均値と最大値を求め画面に表示するプログラムをfor文を用いて作成せよ

#include<stdio.h>
void main()
{
	int i, n;
	float data, sum, ave, max;

	sum = 0.0;

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

	for(i=0;i<n;i++){
		printf("data%d=", i+1);
		scanf("%f", &data);
		sum += data;
		if(i == 0){
			max = data;
		}else{
			if(max < data){
				max = data;
			}
		}
	}

	ave = sum/(float)n;

	printf("データの合計は%fです.¥n", sum);
	printf("データの平均値は%fです.¥n", ave);
	printf("データの最大値は%fです.¥n", max);
}

(3) 1~100までの数字で奇数だけを表示するプログラムを作成せよ

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

	for(i=1;i<=100;i++){
		if(i%2 == 1){
			printf("%d¥n", i);
		}
	}
}

(4) (3)の問題で,奇数の個数を数えその数を表示するプログラムを作成せよ

#include <stdio.h>
void main()
{
	int i, count;
	
	count = 0;

	for(i=1;i<=100;i++){
		if(i%2 == 1){
			count++;
		}
	}
	
	printf("奇数の個数は%dです.¥n", count);
}

(5) つぎのような数列をフィボナッチ数列という

1 1 2 3 5 8 13 21 34 55 89

この数列は第n項は第n-1項と第n-2項を加えたものであり,第1項と第2項は1であるから次のように定義される


  

これを第20項まで計算するプログラムを作成しなさい

#include <stdio.h>
void main()
{
	int i, f1, f2, f3;

	f1 = 1;
	f2 = 1;

	for(i=0;i<20;i++){
		if(i==0){
			printf("%d¥n", f1);
		} else if(i==1){
			printf("%d¥n", f2);
		} else{
			f3 = f1 + f2;
			printf("%d¥n", f3);
			f1 = f2;
			f2 = f3;
		}
	}
}