#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という関数を作る
(ヒント)関数の中から,すでに定義してある別の関数を呼び出して使うことができる.