問1 swap
問2 絶対値
引数の絶対値を返す関数を定義するには引数が負の数であるとき-1をかければいい
問3 べき乗
1で初期化した変数に第一引数を第二引数回かければいい(int型に格納できる値の範囲を越えることがある)
問3.5 FizzBuzz
1 #include<stdio.h>
2
3 void fizzBuzz(int x){
4 for(int i = 1; i <= x; ++i){
5 if( i % 15 == 0 ){
6 printf("FizzBuzz\n");
7 }else if( i % 3 == 0 ){
8 printf("Fizz\n");
9 }else if( i % 5 == 0 ){
10 printf("Buzz\n");
11 }else{
12 printf("%d\n", i);
13 }
14 }
15 }
16
17 int main(void){
18 fizzBuzz(100);
19 return 0;
20 }
問4 昇順ソート
- 配列の先頭から最後尾手前のまでそれぞれについて, ひとつ後ろと比較して
前者が後者よりも大きいときに入れ替えることを繰り返すと, 最後尾に配列中の最大値が入る.
- 配列の最後尾を無視し上の操作を繰り返すと数字が昇順に並ぶ. バブルソートと呼ばれる.
1 #include<stdio.h>
2
3 void sort(int arr[], int size){
4 for(int i = 0; i < size; ++i){
5 for(int k = 0; k < size - 1 - i; ++k){
6 if( arr[k] > arr[k+1] ){
7 int tmp = arr[k];
8 arr[k] = arr[k+1];
9 arr[k+1] = tmp;
10 }
11 }
12 }
13 }
14
15 int main(void){
16 int array[10];
17 for(int i = 0; i < 10; i = i + 1){
18 scanf(“%d”, &array[i]);
19 }
20 sort(array, 10);
21 for(int i = 0; i < 10; i = i + 1){
22 printf(“%d\n”, array[i]);
23 }
24 return 0;
25 }