トップページ > プログラム > 2016年01月23日 > YzHFCyx5

書き込み順位&時間帯一覧

18 位/190 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000000303



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
304
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net

書き込みレス一覧

【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
302 :デフォルトの名無しさん[sage]:2016/01/23(土) 22:07:23.87 ID:YzHFCyx5
http://cpp-lang.sevendays-study.com/problemex5.html
このサイトの5-2の問題、数字を漢数字に変換する問題をやってるのですが(面倒なので1〜3のみとする)
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main() {
string a;
map<string, string> m;
int i;
string names[] = { "1","2","3" };
m[names[0]] = "一";
m[names[1]] = "ニ";
m[names[2]] = "三";
cout << "入力してください:"<<endl;
cin >> a;
string::iterator it = a.begin();
for (it = a.begin(); it < a.end();it++){
cout << m[*it] ;
}
//else { cout << "存在しません"; }
return 0;
}

このコードのcout<<m[*it];の部分でエラーが出てしまいます
自分の考えではiterator itを入力されたaの1文字目から最後の文字まで動かし、そのitが指す値をmapで変換しています
なぜダメなのでしょうか?
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
304 :デフォルトの名無しさん[sage]:2016/01/23(土) 22:53:37.80 ID:YzHFCyx5
map<char,string>にしたらうまくいきました。
ありがとうございます。
続いてまた質問なのですが、以下のコードで1から10の乱数を10回発生させてsetにその乱数をいれてるのですが、毎回10個の乱数が同じになってしまいます
何が悪いのでしょうか?(実行すると、coutの結果として22222222222、5555555555のようになります)
#include<stdio.h>
#include <stdlib.h>
#include<time.h>
#include<iostream>
#include<set>
using namespace std;
int main() {
int a;
set<int> number;
for (int i = 0; i < 10; i++) {
srand((unsigned) time(NULL));
a= rand() % 10 + 1;
cout << a ;
number.insert(a);
}
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
306 :304[sage]:2016/01/23(土) 22:56:59.97 ID:YzHFCyx5
すみません
srandの部分をコメントアウトしたら解決しました


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。