• ベストアンサー

C言語プログラム能力検定の問題でわからないところがあります

hsyLの回答

  • ベストアンサー
  • hsyL
  • ベストアンサー率100% (3/3)
回答No.2

整数の割り算・かけ算・引き算で c = b - (b/a)*a = 13 - (13/6)*6 = 13 - 2*6 = 13 - 12 = 1 がつまり、% ですね。 って書いちゃ試験勉強の手助けにはならないですかね...

sususun
質問者

お礼

ありがとうございます 計算過程が非常にわかりました。 13-(13/6)*6 ^^^^ この部分であまりが切り捨てられることを 「丸め」と呼ぶんですね。ありがとうございます 加えて1つ気になるのですが。 最初にmodが定義されたときは int mod(int a,int b); となっているのに対し 下部の定義では逆に int mod(int b, int a); と定義されている意味は何かあるのでしょうか? もし良ければ教えてください。 m(_ _)m

関連するQ&A

  • C言語についてです。

    mのn乗を計算する関数power()を作成せよ. ただし,関数power()はm,nを引数とし, 戻り値としてmのn乗の値を返すものとする. m,nは,正整数とする.提出するプログラムには, 関数power()だけでなく,m,nを入力し, mのn乗を出力するメイン関数main()を含むものとする. main()は,power()の前に記述すること. また,power()のプロトタイプ宣言も記述する これについて、作ってみたのですが実行できません。 どこが間違ってるか教えてください。 #include<stdio.h> int power(int m, int n); int main() { int m,n; int a,sum; printf("整数を入力してください:"); scanf("%d",&m); printf("何乗しますか?"); sum = power(n,m); printf("%dの%d乗は%dです。\n",n,m,sum); } int power(int m, int n) { int a, kotae; kotae = 1; for(a=1; a<=n; a++) kotae = kotae * m; return kotae; }

  • C言語 関数の問題

    C言語(関数の問題)で読み込んだ4つの整数の最大値を求めプログラムで 整数を2つペア比較し、関数の入れ子を用いて最大値を見つけて、表示する。 というプログラムを作成したいのですが #include<stdio.h> int maxof(int a, int b) { if(a > b) return (a); else return (b); } int max4(int a, int b, int c, int d) { max(max(a, b), max(c, d)); } int main(void) { int num1,num2, num3, num4; ------ 整数の読み込み printf("最大値は%dです。", max4(num1, num2, num3, num4)); return(0); } と記述すると、上手くいったのですが これを max関数だけを用いて作成できますでしょうか? 整数の比較は全てmax関数で行いたいです。

  • C言語について

    こんばんわ。協力お願いします。 2問あります。 1問目です。 西暦年yearを引数として受け取り, 閏年かどうかの判定結果を戻り値として返す関数leap_year()を作成せよ. ただし,leap_year()は,閏年の場合は1を返し, そうでない場合は0を戻り値として返すものとする. 提出するプログラムは,関数leap_year()だけでなく, メイン関数main()も含む下記プログラムを完成させる形で作成する。 #include <stdio.h> /* ここに関数leap_year()のプロトタイプ宣言を記述する */ int main() { int i, year[3]; for (i=0; i<3; i++) { printf("西暦年を入力してください"); scanf("%d", &year[i]); if (leap_year(year[i]) == 1) { printf("閏年です.\n"); } else { printf("閏年ではありません.\n"); } } } /* ここに関数leap_year()を定義する */ 2問目です。 mのn乗を計算する関数power()を作成せよ. ただし,関数power()はm,nを引数とし, 戻り値としてmのn乗の値を返すものとする. m,nは,正整数とする.プログラムには, 関数power()だけでなく,m,nを入力し, mのn乗を出力するメイン関数main()を含むものとする. main()は,power()の前に記述すること. また,power()のプロトタイプ宣言も記述すること。 よろしくお願いします。

  • C言語のreturnの使い方

    return a, b; のように2つの引数で値を返せることを最近になり 知りました。ところで以下のような使い方は可能でしょうか? test( , )という2つの引数が必要な関数にnum()で return 1,2としてひとつの関数呼び出しで引数2個分に すると言うようなことです。 #include <stdio.h> int test( int i, int j){   printf("%d %d",i,j); } int num(void){   return 1,2; } int main(void){   test( num() ); }

  • C言語 関数について

    協力お願いします。 2問あります。 1問目です。 西暦年yearを引数として受け取り, 閏年かどうかの判定結果を戻り値として返す関数leap_year()を作成せよ. ただし,leap_year()は,閏年の場合は1を返し, そうでない場合は0を戻り値として返すものとする. 提出するプログラムは,関数leap_year()だけでなく, メイン関数main()も含む下記プログラムを完成させる形で作成する。 #include <stdio.h> /* ここに関数leap_year()のプロトタイプ宣言を記述する */ int main() { int i, year[3]; for (i=0; i<3; i++) { printf("西暦年を入力してください"); scanf("%d", &year[i]); if (leap_year(year[i]) == 1) { printf("閏年です.\n"); } else { printf("閏年ではありません.\n"); } } } /* ここに関数leap_year()を定義する */ 2問目です。 mのn乗を計算する関数power()を作成せよ. ただし,関数power()はm,nを引数とし, 戻り値としてmのn乗の値を返すものとする. m,nは,正整数とする.プログラムには, 関数power()だけでなく,m,nを入力し, mのn乗を出力するメイン関数main()を含むものとする. main()は,power()の前に記述すること. また,power()のプロトタイプ宣言も記述すること。 よろしくお願いします。

  • C言語

    C言語の問題が分からなくて困ってます。 時間がないのでわかる方教えていただけますでしょうか。次の1️⃣2️⃣3️⃣です。 整数割り算の結果と余りを同時に求める関数 div_mod_intを作成せよ。 ただし、ゼロ割り算は考慮しなくて良い。 * 整数割り算の結果と余りを同時に求める関数を作成 #include <stdio.h> int input_int(int *pd); void div_mod_int(int data1, int data2, ____1⃣____); int main(void) { int data1, data2; int syou, amari; while (input_int(&data1) != EOF && input_int(&data2) !=EOF) { div_mod_int(data1, data2, ____2⃣____); printf("%d / %d = %d...%d\n\n", data1, data2, syou, amari); } return 0; } /* * 整数割り算を行い商と余りを求める * 引数 int data1 :被除数 (割られる数) * int data2 : 除数 (割る数) * int data1 / data2 : 除算結果 * int data1 % data2 : 余り * 戻り値 void :なし */ void div_mod_int(int data1, int data2,____1⃣____) { ____3⃣____ __________ }

  • C言語 関数問題

    西暦年yearを引数として受け取り,閏年かどうかの判定結果を戻り値として返す関数leap_year()を作成せよ. ただし,leap_year()は,閏年の場合は1を返し,そうでない場合は0を戻り値として返すものとする. 提出するプログラムは,関数leap_year()だけでなく,メイン関数main()も含む下記プログラムを完成させる形で作成する #include <stdio.h> /* ここに関数leap_year()のプロトタイプ宣言を記述する */ int main() { int i, year[3]; for (i=0; i<3; i++) { printf("西暦年を入力してください"); scanf("%d", &year[i]); if (leap_year(year[i]) == 1) { printf("閏年です.\n"); } else { printf("閏年ではありません.\n"); } } } /* ここに関数leap_year()を定義する */

  • C言語をお願いします

    普通には出来たのですが、配列や関数の使い方がよく分かりません。 助けてください。よろしくお願いします。 問 1~30の整数の範囲で、3辺a, b, c(cを斜辺)の三角形のうち、直角三角形が成立する場合を見つけて配列に入れる。その後、配列をもとにプログラムを作成。 ※a, b, c辺を見つけて配列に入れる機能は関数にすること。 ※a <= b、b <= cを仮定。 #include<stdio.h> int myfunc(int x, int y, int z); int main(){ int a, b, c; for(a=1; a<=30; a++){ for(b=a; b<=30; b++){ for(c=b; c<=30; c++){ if(a*a + b*b == c*c){ printf("%d,%d,%d",a,b,c); puts(" "); } } } } return 0; } 実行例 3,4,5 5,12,13 ・ ・ よろしくお願いします。

  • C言語の簡単な質問です。

    #include "stdio.h" int tasizan(int a,int b){ int c; c=a+b; return c; } int main(void){ int a,b,c; a=1; b=1; c=tasizan(a,b); printf("%d+%d=%d",a,b,c); return 0; } と、あるとします。この文を読み込む順番を教えてください。  文の左に行番号みたいに順番を書き込んでください。   例 (例が間違ってたらすみません) 1 #include "stdio.h" 2 int main(void){ 3 int a,b,c; 4 a=1; 5 b=2; 6 c=a+b; 7 printf("%d+%d=%d",a,b,c); 8 return 0; }

  • C言語のポインタのプログラムについての質問です。

    C言語のポインタについて質問です。 nこの配列データaを受け取り、それらの値をもとに、2つのデータを引数で受け取って交換する関数void swap(double *a,*b)を用いることにより最終的に降順に並べ替えて出力したのち、それらを平均(average)と標準偏差(standard deviation)を引数で受け渡す関数 void calc_ave_stddev(int n,double a[],double *ave,double*stddev)を利用して出力されるプログラムを教えてほしいです。 main関数内での書式は printf("enter n:"); scanf("%d,&n"); for(i=0;i<n;i++){ printf("enter a[%d]:",i); scanf("%lf"&a[i]); } main関数での結果の出力は、 for(i=0;i<n;i++){ printf("a[%d]=%lf\n",a[i]); } printf("ave=%lf stddev=%lf\n",ave,stddev); です。