関数の作成例

参考

サイコロをイメージした関数

/* サイコロを振る関数 */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int saikoro()
{
	return rand() % 6 + 1;
}

int main(void)
{
	srand( (unsigned)time(NULL));

	int i;
	
	for(i=0; i<10; i++){
		printf("%d\n", saikoro() );
	}
	
	return 0;
}

偶数か奇数化を判断する関数

/* 偶数か奇数かを判定して表示する関数 */
#include <stdio.h>

void guki(int n)
{
	if(n % 2){
		printf("%dは奇数です\n", n);
	}
	else{
		printf("%dは偶数です\n", n);
	}
}

int main(void)
{
	int x;
	
	printf("数値を入力してください: ");
	scanf("%d", &x);
	
	/* 関数呼び出し */
	guki(x);
	
	return 0;
}

既存の関数を自分で作ってみた

#include <stdio.h>

/* 2つの数のうち大きい方を返す関数 (math.hで定義されている関数maxとほぼ同じ処理)*/
int max(int x, int y)
{
	if(x > y) return x;
	else return y;
}

/* 小文字を大文字に変換して返す関数 (ctype.hで定義されている関数toupperと同じ処理だが関数型は本家はint型)*/
char toup(char c)
{
	if(c >= 97 && c <= 122){	/* 小文字のみ大文字に変換 */
		c -= 32;
	}
	return c;
}

int main(void)
{
	char c;
	int a, b, n;
	
	/* max関数の動作確認 */
	printf("数値を2つ入力(スペース区切り): ");
	scanf("%d %d", &a, &b);
	
	n = max(a, b);
	printf("大きい方は%dです\n\n", n);
	
	rewind(stdin);	/* scanf誤動作用に挿入 */

	/* toup関数の動作確認 */
	printf("1文字入力: ");
	scanf("%c", &c);
	
	printf("[%c]\n", toup(c) );
	
	return 0;
}

コメント