#include <stdio.h> void swap(int *a, int *b) { int ab; ab = *a; *a = *b; *b = ab; } void main() { int a, b; printf("a="); scanf("%d", &a); printf("b="); scanf("%d", &b); printf("aの値とbの値を入れ替えます\n"); swap(&a, &b); printf("a=%d\n", a); printf("b=%d\n", b); }
(2) 配列の要素の和を求める関数を作成せよ.
#include <stdio.h> int suma(int *a, int n) { int i, wa=0; for(i=0; i<n; i++){ wa += a[i]; } return wa; } void main() { int n=5; int a[]={1,2,3,4,5}; printf("配列の要素%d個の和は,%d です\n", n, suma(a,n)); }
(3) ある文字列を入力したとき,文字数を数える関数を利用して,文字を逆に並べ替える関数を作成せよ.
文字数を数える関数:
#include <stdio.h> int moji_nagasa(char *str) { int i; for(i = 0; str[i] != 0x00; i++); return i; } void main() { char str[128]; int i; printf("文字列を入力してください:"); scanf("%s", str); printf("入力された文字列は,%sです.", str); printf("文字数は,%dです.", moji_nagasa(str)); }
入力されたアルファベットの小文字の文字列をabc順に並べ替えるプログラムを,先週作成した関数を応用して作成せよ.
手順:
文字数を数える関数を用いて,文字数を数える
二つの文字を入れ替えるswapという関数を作る
swap関数をもちいて,配列の並べ替えをするsortという関数を作る
(ヒント)関数の中から,すでに定義してある別の関数を呼び出して使うことができる.