ddnp009のプロフィール

@ddnp009 ddnp009
ありがとう数41
質問数0
回答数78
ベストアンサー数
15
ベストアンサー率
25%
お礼率
0%

  • 登録日2004/09/13
  • STLのmapについて

    いつもお世話になっております。 今回はmapについてお聞きしたいです。 現在mapを使っていますが、mapを構造体に入れようと struct PARAM {   int  i;   char  str;   map<int, int>  map; }; のようにしていますが、<が不正です、のようなことを言われてうまくいきません。 構造体にmapを入れることは可能なのでしょうか? 可能ならばその方法を教えていただけると幸いです。 以上、ご教授願います。 環境は OS WindowsXP SP2 VC++6.0 です。

    • iec1128
    • 回答数5
  • C言語 逆順の配列の仕方を教えてください

    今、大学でC言語の課題をやっています。サンプルが与えられています。 その課題は、配列の逆順です。 for文を使って、実行結果は以下のようにならなければならなく、「並び替えの結果は再び num1, num2 に保存される」という条件なのですが、逆順になるにはどのようなプログラムを組めば良いのでしょうか? ソースの「 /* ここに処理を書く */」にプログラムを書かなければいけないのですが、まったくの初心者でわかりません。誠にお手数ですが、教えていただければ幸いです。宜しくお願いいたします。 -----実行結果----- C:\c_lang>reverse --- before --- 2 4 9 10 5 3 1 7 8 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 --- after --- 6 8 7 1 3 5 10 9 4 2 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 -----以下ソース----- #include <stdio.h> void print_num( int *num, int len ); void reverse_num( int *num, int len ); int main( void ) { int num1[10]={2,4,9,10,5,3,1,7,8,6}; int num2[15]={1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15}; printf("--- before ---\n"); print_num( num1, 10 ); print_num( num2, 15 ); /* 逆順に並べ替え */ reverse_num( num1, 10 ); reverse_num( num2, 15 ); printf("--- after ---\n"); print_num( num1, 10 ); print_num( num2, 15 ); return 0; } void print_num( int *num, int len ) { int i; for( i=0; i<len; i++ ){ printf( "%d ", num[i] ); } printf("\n"); } void reverse_num( int *num, int len ) { /* ここに処理を書く */ } -----ソースここまで-----

    • becks09
    • 回答数5
  • std::stringクラスのc_str()で取得した文字列をいじることは可能ですか?

    c++で、以下のようなコードは問題ないでしょうか? // chrの中身の小文字を大文字にする void func(char* chr); std::string str("aaa"); const char* str_p = std.c_str(); func((char*)str_p); ←これは大丈夫ですか? //このあとstrに対して文字列を追加したりいろいろ処理する。 このようにc_strで取得したconst char*をconstをはずして 強引にいじくることは問題ないでしょうか?

  • ファイルについて

     以下のようなテキストファイルがあったとします。 1 //番号 魚 //商品分類 いわし //商品 100 //価格 さば 200 2 野菜 パセリ 3 ←ここの価格に注目 3 果物 りんご 10 ハナナ 20  1行ずつファイルから読み込んで、排出した場合、価格の3円のところでおかしくなります。 (番号の3と認識してしまうため) これを防ぐにはどうすればいいですか? 私は、1つ上の行が、数字がどうか?を判定するのをこころみましたが、無理でした(;;) だれか助けて(><)

  • プログラム問題(4)

    以下の問題のプログラムをやったのですが、コマンドプロンプトで実行してみるとエラーになってしまうのですが、どなたか問題点を指摘していただけないでしょうか? 【問題】 学籍番号、氏名、出席からなる10人分のデータがある。出席の悪いものから並び替  えて表示するプログラム。  例  CA180002 山田太郎 70  CA170001 山田次郎 60  データは、適当なものを使います。 【プログラム】 #include <stdio.h> #include <string.h> typedef struct student_t { char id[9]; char name[51]; unsigned int attendance; } student; student stu[10]; int stu_i = 0; void student_new(const char *, const char *, unsigned int); void student_sort(void); int main(void) { int i; student_new("5", "宮本恒靖", 5); student_new("14", "三都主アレサンドロ", 1); student_new("21", "加地亮", 9); student_new("22", "中澤佑二", 6); student_new("7", "中田英寿", 2); student_new("8", "小笠原満男", 8); student_new("10", "中村俊輔", 7); student_new("15", "福西崇史", 3); student_new("9", "高原直泰", 4); student_new("13", "柳沢敦", 0); student_sort(); for (i = 0; i < stu_i; ++i) { printf("%s %s %d\n", stu[i].id, stu[i].name, stu[i].attendance); } } void student_new(const char *id, const char *name, unsigned int att) { strcpy(stu[stu_i].id, id); strcpy(stu[stu_i].name, name); stu[stu_i].attendance = att; stu_i++; } void student_sort(void) { int i, j; student tmp; for (i = 0; i < stu_i; ++i) { for (j = i + 1; j < stu_i; ++j) { if (stu[i].attendance > stu[j].attendance) { tmp = stu[i]; stu[i] = stu[j]; stu[j] = tmp; } } } }