今週は,関数のまとめです。先週までの内容を良く復習して,チャレンジしてください。
キーワード:「平均値」「ソート」「文字列の長さ」「偏差値」
(1)変数 a と b の値を,入れ替えるswap()
関数を作成し,プログラムを完成させよ。
void main()
{
float a=2.0, b=3.0;
printf("a=%f, b=%f¥n", a, b);
swap(□a, □b);
printf("a=%f, b=%f¥n", a, b);
}
(2)関数を用いて実数型配列の要素をキーボードから10個入力及び配列の中身表示プログラムを作成せよ。
*ただし,□に必ずしも記号が入るとは限らない。
void input(float □p, int □n)/*キーボードからの入力*/
{
int i;
for(i=0;i<n;i++){
printf("data[%d]=",i);
scanf("%f",□p+i);
}
}
void output(float □p, int □n)/*配列の表示*/
{
int i;
for(i=0;i<n;i++){
printf("data[%d]=%f¥n",i,□(p+i));
}
}
void main()
{
float data[10];
input(□data,□10);
output(□data,□10);
}
(3)実数型配列の要素をキーボードから10個入力する,平均値を算出する,大きい順に並び替え(ソート)る,配列の中身を表示する 各関数を作成せよ。
ヒント:上の二つの問題を用いるとわかりやすいプログラムが出来る。
void main()
{
float data[10];
input(data,10); /* 10個の要素を入力する関数*/
printf("平均値 = %f¥n",average(data,10)); /* 平均値を算出する関数 */
sort(data,10); /* 大きい順に並び替える関数 */
output(data,10); /* 配列の中身を出力する関数 */
}
(4)キーボードから文字列を入力すると,文字数を数えて値を返す関数を作成せよ.
ヒント:
#include <stdio.h>
int moji_nagasa(char *str)
{
...
}
void main()
{
char str[128];
printf("文字列を入力してください:");
scanf("%s", str);
printf("入力された文字列は,%sです.", str);
printf("文字数は,%dです.", moji_nagasa(str));
}
(5)整数型配列に成績データである得点を入力する,偏差値を計算する,それぞれの番号の得点と偏差値を全て表示する,各関数を作成し,偏差値を表示するプログラムを作成せよ。成績データは以下に示す表を使用せよ。
偏差値は,以下の式から求めることが出来る。
平方根の計算には,sqrt()関数を利用する。sqrt()関数を利用するには,
math.hをインクルードする必要がある。