いちばん失敗した人決定戦

入力関数(配列4個)を作成するプログラムです。
内に入れる数字は、0~9です。どうしてもイメージがわからず
困っています。どなたかご教示頂けましたら大変助かります。
どうか宜しくお願い致します。

A 回答 (5件)

Hit & Blow を作るのでしょうか。


1桁の数字を1つの配列に入れて、4桁の数字の番号と位置があっているかどうかを
示すプログラムでしょうか。
これじゃ、答えかなあ~ と思ったけれども、
[C hit & blow ソース]で検索した結果がこれ
 ↓

参考URL:http://www.saoyagi.net/piece/mindgame.html
    • good
    • 0

4桁の数字を配列に格納するということであれば、



int input_4digits(wchar_t array[4])
{
 char *locale = setlocale(LC_CTYPE, "");
 wchar_t t[4+1+1]; /* 4桁+'\n'+'\0' */
 const wchar_t digits[] = L"0123456789";
 int i, result = -1;

 if (fgetws(t, sizeof(t)/sizeof(t[0]), stdin) == NULL || wcslen(t) != 5 || t[4] != L'\n')
  goto fail;
 for (i = 0; i < 4; i++)
  if (wcschr(digits, t[i]) == NULL)
   goto fail;
 wmemcpy(array, t, 4);
 result = 0;

fail:
 setlocale(LC_CTYPE, locale);
 return result;
}

こんな感じでどうでしょう。
成功なら0を、失敗なら-1を返します。
    • good
    • 0

配列を"作成する"んじゃなくて、


配列に"中身を詰めたい"ってことかしら。

int nums[4] = {0};
fscanf(stdin, "%1d%1d%1d%1d", nums, nums + 1, nums + 2, nums + 3); // "1234"などと続けて4桁入力させる前提

printf("%d, %d, %d, %d", *nums, nums[1], nums[2], nums[3]);
    • good
    • 0

>決まっている4桁の数字と入力した数字が当たっているかの数当てゲームに使用したいと思っております。



でしたらscanf関数で数値を文字列として受け取ったあと、atoi関数なんかで数値に変換しちゃえばよいのでは?

参考URL:http://www9.plala.or.jp/sgwr-t/c/sec07.html#s7-4
    • good
    • 0

> 入力関数(配列4個)を作成するプログラムです。



配列4個というのがよく分かりません。

> 内に入れる数字は、0~9です。

数字を中に入れるとのことなので、何らかの形で文字を格納できる配列ということでしょうか?
しかし、全角の0~9を入れるということですので、wchar_t型の配列か、多バイト文字を格納するための二次元配列ということでよろしいでしょうか?

そもそも、4個もの配列を何に使うのでしょうか?さっぱり分かりません。
    • good
    • 0
この回答へのお礼

返信ありがとうございます。説明不足ですみません。
scnaf関数を使わず4桁の数字を入力する関数を作り、制御文??

 決まっている4桁の数字と入力した数字が当たっているかの数当てゲームに使用したいと思っております。 
宜しくお願い致します。

お礼日時:2006/11/10 00:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!