以下の(実行不可)コードを修正し,変数aの値を"8"と表示するプログラムを作成せよ。但し、変数aに直接8を代入せず、ポインタ変数bを利用すること。
#include <stdio.h>
int main(void){
int a;
int *b;
/* 以下の二行を修正。 */
b = a;
b = 12;
printf("%d\n", a);
return 0;
}
締切: 10/18 23:59
整数xを入力として受け取り、xが0より小さければ0に更新し、100より大きければ100に更新する関数を作成せよ。ただし、「main」は以下をそのまま使用すること。
#include <stdio.h>
int main(void){
int x = 0;
scanf("%d", &x);
adjust_point(&x);
printf("%d\n", x);
return 0;
}
締切: 10/18 23:59
参考: 演習10-1
以下のコード(四則演算)を実行しても、正しい結果が出力されない。関数の定義と適用の部分を修正し、意図通りに動くプログラムを作成せよ。
#include <stdio.h>
/* 関数の定義を修正 */
void fourArithmeticOperations(double x, double y, double add, double sub, double mul, double div){
add = x + y;
sub = x - y;
mul = x * y;
div = x / y;
};
int main(void){
double a[2] = {0.0, 0.0};
double add = 0.0;
double sub = 0.0;
double mul = 0.0;
double div = 0.0;
int i;
for (i = 0; i < 2; i++)
scanf("%lf", &a[i]);
/* 四則演算の関数 */
fourArithmeticOperations(a[0], a[1], add, sub, mul, div);
printf("%lf\n %lf\n %lf\n %lf\n", add, sub, mul, div);
return 0;
}
締切: 10/18 23:59
3つの整数を入力として受け取って、それらを小さいものから順に表示するプログラムを作成せよ。ただし、「main」は以下をそのまま使用すること。
#include <stdio.h>
int main(void){
int x[3] = {0, 0, 0};
int i;
for (i = 0; i < 3; i++)
scanf("%d", &x[i]);
sort3(&x[0], &x[1], &x[2]);
for (i = 0; i < 3; i++)
printf("%d\n", x[i]);
return 0;
}
締切: 10/18 23:59
参考: 演習10-3
要素型がint型で要素数がnの配列を受け取って、全要素に添字と同じ値を代入する関数を作成せよ。ただし、「main」は以下をそのまま使用すること。また、作成する関数内で配列の添字演算子を用いてはならない。(すなわち、a[i] = i; などと書いてはいけない。)
#include <stdio.h>
int main(void){
int a[5];
int i;
set_idx(a, 5);
for (i = 0; i < 5; i++)
printf("%d\n", a[i]);
return 0;
}
締切: 10/18 23:59
参考: 演習10-4
配列a[]の先頭からn個分の要素を-1に変換する関数ary_setを作成せよ。
#include <stdio.h>
int main(void){
int i;
int a[] = {1,2,3,4,5,6,7,8,9,10};
int n;
scanf("%d", &n);
ary_set(a, -1, n);
for (i = 0; i < 10; i++)
printf("%d\n", a[i]);
return 0;
}
注1: 但し、nの値は10以下とする(配列aの要素数より大きい値(n > 10)を入力した際のエラーは考えなくてよいものとする)。
締切: 10/18 23:59