【課題1-1】 #include void swap(int* , int* ) //関数のプロトタイプ宣言。ポインタ型でなければならない、という説明は講座でしたと思います。 //わからなかったらガンガン質問してね! int main(void) { int a , b; printf("カンマで区切って2つの数字を入力してください。\n->"); scanf("%d,%d" , &a , &b); printf("a = %d , b = %d\n" , a , b); swap( &a , &b ); //なぜアドレスを引数としてswap関数に渡しているかは下で書きます。 printf("a = %d , b = %d"); return 0; } void swap(int* pa , int* pb ) //この時点で pa = (引数) , pb = (引数) の処理が行われます。つまり--- { //引数は値ではなくアドレスでなければいけませんね。 int tmp; tmp = *pa; *pa = *pb; *pb = *pa; printf("swapが実行されました。\n"); //void型の関数なので戻り値はありません.なので--- //return の表記も必要ないです。 } 【課題1-2】 #include float math( float , float , int ); //小数も計算可能にすると、戻り値も小数の可能性がありますよね。そのため--- //関数の型をfloat型にすると良いです。 int main(void) { float num1 , num2 , result; //どんな役割の変数なのか、ある程度分かりやすいような変数名にしましょう。 int s = 5; //後のループのため特殊な初期化をしています。 printf("演算したい2つの数字を、カンマで区切って入力してください。\n"); scanf("%f,%f" , &num1 , &num2); while( s < 0 || s > 4 ) //不正な入力を受け付けないためのループ { printf("演算方法を選んでください。不正な入力の場合ループします。\n 加法 -> 0\n 減法 -> 1\n 乗法 -> 2\n 除法 -> 3\n ->"); scanf("%d" , &s); } result = math( num1 , num2 , s );//math関数呼び出し printf("演算結果は\n%f\nです。\n" , result); return 0; } float math( float suuzi1 , float suuzi2 , int c) //変数、関数の型に注意。 { float kekka; switch(c) //main関数で入力した値によって演算方法を変えるのは、switch文を用います。 { //使い方忘れた>< って人は、質問するか過去の資料を読み返してください! case 0: kekka = suuzi1 + suuzi2; break; case 1: kekka = suuzi1 - suuzi2; break; case 2: kekka = suuzi1 * suuzi2; break; case 3: kekka = suuzi1 / suuzi2; break; } return kekka; //計算結果を戻り値として返します。 }