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