###前提・実現したいこと
二進数を加算処理するプログラムを作成するのですが、入力された二進数を配列にいれて、全加算器の処理を加えて配列の中身ごと計算して10進数表示、加算しようと考えています。
それぞれの処理を分けて関数として扱いたいため、メインでは呼び出すだけにしたいと思っています。
###発生している問題・エラーメッセージ
a[]、b[]の配列にアクセスして関数内で入力、表示、格納したarr[]をa、bに返す処理をしたいのですが、分けて書く際の、引数や動作がうまくいきません。
また、void文の使い分けがよくわかりません。例題の数字入れ替えのswapでは変数二文字の入れ替えで、voidを使っていたので今回も使用してみましたが、配列処理を返す場合は戻り値のあるintで宣言するべきでしょうか。
###該当のソースコード
#define _CRT_SECURE_NO_WARNINGS #define MAXBIT 8 //8桁までの入力を可能にする void Array(int*); //配列要素ごとに文字を格納、数字に変換し、出力する関数 int main() { int a[MAXBIT] = { 0 }; //一つ目の二進数を格納する配列 int b[MAXBIT] = { 0 }; //二つ目 printf("一つ目の二進数は "); Array(a); //Array呼び出し printf("二つ目の二進数は "); Array(b); return 0; } void Array(int *Array) { int Arr[MAXBIT] = { 0 }; int i; //配列のi番目 for (i = 0; i < MAXBIT; i++) //8桁までの入力を受け付け処理 { Arr[i] = _getch(); //a[i]に入力"文字"を格納 if (Arr[i] == '\r') //エンタ-(cr)が入力された場合は処理を抜ける { Arr[i] = '\0'; //cr入力を'0'に変える break; } Arr[i] = Arr[i] - '0'; //"文字"で入力されたコードを数字に変換し格納 printf("%d", Arr[i]); //入力文字の表示 } puts("\n"); }``` ###試したこと 作成したarrayの動作不良かと思い、mainに組み込み、arrをそれぞれ、a,bに書き換えるとと入力、表示、配列への格納はうまくいきました。 ###補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報 ###前提・実現したいこと ここに質問したいことを詳細に書いてください (例)PHP(CakePHP)で●●なシステムを作っています。 ■■な機能を実装中に以下のエラーメッセージが発生しました。 ###発生している問題・エラーメッセージ
エラーメッセージ
###該当のソースコード ```ここに言語を入力 ここにご自身が実行したソースコードを書いてください
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答3件
あなたの回答
tips
プレビュー