- ベストアンサー
自分の適性や才能の方向が、リストカットやオナニーと同質のように感じるのです
自分の興味関心/資質/適性が、世のため人のため社会のために、まったく役立っていないのですが・・・ ・語学論文を学会で発表した ・自歌集を出版した ・書道の展覧会に出品した ・市展に絵画を出品した ・ピアノを弾く趣味がある ・生活上別にいらない「ぜいたく品」を売っている会社に勤務している これらが私の趣味と職業ですが、自己満足的というか、リストカットやオナニーと同質のように感じるのですが、 自分の適性や才能が、こういう方面にしかなく・・・・・社会の役に立つにはどうすればいいでしょうか? 医者や薬剤師のように、人の役に立つには、どんなことをしたらいいでしょうか
- その他(恋愛・人生相談)
- 回答数6
- ありがとう数7
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
あなたの趣味の評価はどうなんですか? もし それで飯を食って行けるのであれば その道に行かれたらよろしい。 無理なら別の仕事をする以外にないのですが ただ あなたの趣味趣向から仕事に直結する仕事が思い浮かばないですねぇ。。。 ちなみに医者や薬剤師以外にも世の中の為になる仕事はいくらでもありますよ?
その他の回答 (5)
- dai-ym
- ベストアンサー率22% (848/3824)
趣味や嗜好品は心のオアシスになるものです。 詩や書や絵、音楽などは人の心を豊にするものです。 人はパンのみに生きるにあらず。 そういう趣味や嗜好品、贅沢品があってこそ人生が豊になります。 十分社会の役に立っていると思いますよ。 ちなみにオナニーだって性欲の開放という役に立っていると思います。 リストカットは役に立ってないですけどね。
お礼
ご回答ありがとうございます。
- nyon-tan
- ベストアンサー率15% (58/382)
>自己満足的というか 満足してるならいいんじゃないの?(・ω・`) 何が問題なんだろう
お礼
ご回答ありがとうございます。 他人にもそういわれるのですが……
- ap10
- ベストアンサー率33% (453/1356)
必ずしも人の役に立つ必要は無く、基本的に人に迷惑かけなければオッケーですよ ぜいたく品の販売は、それを欲しがる人の役に立っているし、社会経済的にもそういう行為自体が役に立ちます また学会での発表という事は、その学会や語学の世界の発展に役に立つのではないでしょうか どうしても医者や薬剤師のような役の立ち方を希望するのであれば、できる事を探すしかないと思います ボランティア活動もありますし、出勤の行き帰りに道のゴミを拾うという行為も十分役に立ちますよ ただもしかしたら、それこそリストカットやオナニーと一緒で「人の役に立つ」という名声が欲しいだけ(自己満足)であれば、それなりの立場に立つしかないと思います これは流石に深読み過ぎだと思いますが、一応・・・
お礼
ご回答ありがとうございます。
- rinmedic
- ベストアンサー率27% (22/80)
役に立ってないことは無いと思いますよ 絵や書は見た人の心を豊かにします ぜいたく品を売る会社が成り立っているということは 周りがそれだけ余裕の有る生活をしているということですし 人の役に立つって難しそうで意外と簡単なのかもしれません ・・・お礼や賞賛を期待しているのならば別ですが
お礼
ご回答ありがとうございます。 そういっていただけると、うれしいところですが、ボランティアなど、出来ることを考えたいと思います。
- suunan
- ベストアンサー率14% (224/1569)
趣味はまったく自由です。 「・生活上別にいらない「ぜいたく品」を売っている」 それはスポーツや芸能も同じです。 人間には「無駄な物も必要」なんですよ。 その会社が成り立っているということは需要があるのだから 立派な仕事です。 趣味が物足りないならボランティア活動をすればよいでしょう。
お礼
ご回答ありがとうございます。 ボランティア活動は、今、色々と考えています。r
関連するQ&A
- 展覧会の開き方
比較的大きな公共の会場で絵画の展覧会を開く予定です。出品者はおそらく数十名になろうかと思いますが、参加者は趣味で絵を描いてる人もいれば、職業画家もいます。展覧会は初めてで要領のいいやり方がよくわかりません。特に搬入に関してお尋ねしますが、他の展覧会のお知らせなどを見ると搬入業者に任せるところが多いようですが、それだと出品にかなりの費用がかかるようです。かと言ってふつうの宅配業者を利用すると、まず倉庫を確保し、そこから開催当日に会場まで運ばなければならず、万一作品に傷でも付けたら大変です。 皆様はどうなさっておられますか?
- 締切済み
- 絵画・イラスト・デザイン
- なんでリストカットするのか自分でわからない
たまーにリストカットしたくなります。 なんでリストカットするのかはわからないんです。 病院行くまででもないよなとは思っているんです。 病院行かないでもいいですよね? なんだか自分でもわけわからないです
- 締切済み
- 心の病気・メンタルヘルス
- 双方向リスト(?)
単方向じゃなくて双方向でなおかつ切り替え可能なリファレンスがほしいです。 AAA = bbb とするとき、 AAAからbbbを返し、bbbからAAAを返す物がほしい。 さらに、AAA = ccc と書き換えた場合、 bbbとの関係は解除される。 具体的には、座標 x y に物体 a とb があるとき、 xyからaとbが得られます。 a b 自体はそれぞれリファレンスであり、物体の詳細データが書き込まれてます。 同様、xyもリファレンスであり、位置についての情報が書き込まれています。 ここまでは単純な相互参照で解決できるのですが、 困ったことに物体は移動をおこないます。車が走って隣町に行くように。 その時、座標から物体にアクセスする場合と、 物体から座標にアクセスする場合がおかしくならないように一発で解決する手段を教えてください。 なお、現在は全く無関係な単方向なリファレンス(ようは普通のリファレンス)を二つもちいています。 位置を書き換えるときは、物体から座標にアクセスし、 その座標から自分自身へのリンクを検索し、 そして削除し、 自分自身の座標へのリンクを削除し、 自分自身の新しい座標へのリンクを埋め込み、 そしてその座標にアクセスし、 自分自身へのリンクを埋め込むという、かなりカオスなことになっています。 普通、位置と物体って同時に平等に存在するものじゃなかったっけ?うーむ。 記述がカオスにならない良い方法を教えてください。 あと、何万回もループするプログラムなので出来れば速いやつがいいです。
- ベストアンサー
- Perl
- 単方向リスト
図は単方向リストを表している。“東京”がリストの先頭であり、そのポインタには次のデータのアドレスが入っている。また、“名古屋”はリストの最後であり,そのポインタには0が入っている。 先頭データへのポインタ アドレス データ ポインタ 10 10 東京 50 30 名古屋 0 50 神奈川 90 70 長野 30 90 山梨 70 150 岐阜 アドレス150に置かれた“岐阜”を、“長野”と“名古屋”の 間に挿入する処理を答よという問題なんですが答えが アドレス、 データ部分 、 ポインタ 10 東京 50 30 名古屋 0 50 神奈川 90 70 長野 150 90 山梨 70 150 岐阜 30 になるんですが解き方がわかりません。教えてください
- ベストアンサー
- その他(プログラミング・開発)
- 双方向リストについて
今ゲームを作っているのですがわからなくなったので質問させていただきます。問題のソースなのですが、 ファイル1 //============================================================================= // EnemyAttack // 敵の攻撃処理 // ----------------------------------------------------------------------- // INPUT: void 敵の種類 // OUTPUT: void S_OK = 出撃成功 // !S_OK = 出撃失敗 // GLOBAL: g_enemyType 敵の種類データ //============================================================================= void EnemyAttack(void) { for (int i = 0; i < MAX_ENEMY; i++) { if (g_enemy[i].actFlag == ON) { if(g_enemy[i].shotCounter <= 0) { if(g_enemyBullet.p_UnUseStart.g_NextBullet != NULL) { ENEMYBULLET* baseBullet; baseBullet= g_enemyBullet.p_UnUseStart.g_NextBullet; baseBullet->bullet.move.posX=g_enemy[i].move.posX; baseBullet->bullet.move.posY=g_enemy[i].move.posY; DetachNode(baseBullet); AttachNode(&g_enemyBullet.p_UseEnd,baseBullet); g_enemy[i].shotCounter = ENEMY_SHOT_INTERVAL; } } else { g_enemy[i].shotCounter--; } } } } ファイル2 //---------------------------------------------------------- // AttachNode // 取り付け //---------------------------------------------------------- // input: struct pNode* Base //保持先のアドレス // struct pNode* pNode //保持するアドレス // out true //成功 // false //失敗 //---------------------------------------------------------- bool AttachNode(ENEMYBULLET* pBase,ENEMYBULLET* pNode) { ENEMYBULLET* pPraveNode; pPraveNode = pBase->g_PreveBullet; pPraveNode->g_NextBullet = pNode; pNode->g_NextBullet = pBase; pNode->g_PreveBullet = pPraveNode; pBase->g_PreveBullet = pNode; return true; } //---------------------------------------------------------- // AttachNode // 取り外し //---------------------------------------------------------- // input: struct pNode* pBase //ベースとなるアドレス // // out true //成功 // false //失敗 //---------------------------------------------------------- bool DetachNode(ENEMYBULLET* pNode) { ENEMYBULLET* pPrave; ENEMYBULLET* pNext; if(pNode == NULL) { return false; } if(pNode->g_PreveBullet==NULL || (pNode->g_NextBullet == NULL)) { return false; } pPrave= pNode->g_PreveBullet; pNext = pNode->g_NextBullet; pPrave->g_NextBullet = pNext; pNext->g_PreveBullet = pPrave; pNode->g_NextBullet=NULL; pNode->g_PreveBullet=NULL; return true; }なのですが、 void EnemyAttack(void) { for (int i = 0; i < MAX_ENEMY; i++) { if (g_enemy[i].actFlag == ON) { if(g_enemy[i].shotCounter <= 0) { if(g_enemyBullet.p_UnUseStart.g_NextBullet != NULL) { ENEMYBULLET* baseBullet; baseBullet= g_enemyBullet.p_UnUseStart.g_NextBullet; baseBullet->bullet.move.posX=g_enemy[i].move.posX; baseBullet->bullet.move.posY=g_enemy[i].move.posY; DetachNode(baseBullet); AttachNode(&g_enemyBullet.p_UseEnd,baseBullet); g_enemy[i].shotCounter = ENEMY_SHOT_INTERVAL; } } else { g_enemy[i].shotCounter--; } } } }のところで AttachNode(&g_enemyBullet.p_UseEnd,baseBullet); を通ったときはちゃんとg_enemyBullet.p_UseStartとg_enemyBullet.p_UseEndの間に入っているのに、この関数を出ると g_enemyBullet.p_UseEndの間には入らず、 g_enemyBullet.p_UseStart>g_enemyBullet.p_UseEndになってしまいます。どうしたら消えずに処理が出来るのでしょうか?足りないの補足しますのでよろしくお願いします。
- 締切済み
- C・C++・C#
- 双方向リストについて
*prevは前の要素へのポインタ *nextは後ろの要素へのポインタ typedef struct list_t { char line[256]; struct list_t *prev; struct list_t *next; } LIST; 削除処理 *pが削除する要素 delete_line(LIST *p) { p->prev->next = p->next; p->next->prev = p->prev; free(p) } *pが挿入する要素 *cが挿入する場所 insert_line(LIST *c, LISt *p) { /*両隣へポインターをつなぐ*/ p->prev = c->prev; p->next = c; /*両隣のポインターをつなぎ換える*/ c->prev->next = p; c->prev = p; } これは、ある本に書かれていたものなのですが、どうしても、理解ができません。図を描きながら追ってみたのですが、cは、挿入する場所を表しているのですが、図で描こうにもどこがその場なのかが、わかりません。あと挿入処理のところでpやcが代入されていますが、pやcは、どこを表しているのですか?この本の説明がおかしいのでしょうか?それとも私の考え方が違うのでしょうか・・・。ご指導いただければありがたいです。
- ベストアンサー
- C・C++・C#
- 双方向リスト
双方向リスト 双方向リストについての質問です。 「入力された数値が昇順にリストに入力されるプログラムを、双方向リストを使って作成せよ。実行結果は以下のようになる。」 %./a.out Insert: 10 8 2 7 (Ctrl+d) Show: 2 7 8 10 私は次のようにプログラミングしました。 #include <stdio.h> #include <stdlib.h> struct numbers { struct numbers *right; struct numbers *left; int num; }; main() { int x; struct numbers *numtable, *np, *nq, *tmp, *s; printf("Insert:\n"); numtable = (struct numbers *)malloc(sizeof(struct numbers)); numtable->left = NULL; numtable->right = NULL; while(scanf("%d", &x) > 0) { tmp = (struct numbers *)malloc(sizeof (struct numbers)); tmp->num = x; tmp->right = NULL; tmp->left = NULL; np = numtable->right; nq = numtable; while ( np != NULL) { if ( np->num > x) break; nq = np; np = np->right; } tmp->left = nq; nq->right = tmp; tmp->right = np; np->left = tmp; } printf("Show:\n"); for (s = numtable; s != NULL; s = s->right) printf("%d\n", s->num); } しかし、いざ実行しようとすると、2個目の数値を代入しようとしたときに動作が停止してしまいます。 どうしたらいいでしょうか、どなたか教えてください。
- ベストアンサー
- C・C++・C#
- 双方向リストで…、
typedef struct score{ char name[40]; int eng; int math; int sci; struct score *next; struct score *prev; } SCORE; SCORE head; /* 双方向リストに要素を追加する */ void add_list(void) { SCORE *p, *new; in_file = fopen("input.txt", "r"); if ( in_file == NULL ){ printf("error: not open file.\n"); exit(0); } while( fgets(line, sizeof(line), in_file) != NULL ){ p = head.next; /* 先頭要素の次の要素のアドレス */ /* 新しく追加する要素のためのメモリ領域を確保する */ new = malloc( sizeof(SCORE) ); /* 新しい要素のデータを設定 */ sscanf(line, "%s %d %d %d", new->name, &new->eng, &new->math, &new->sci); new->next = p->next; /* 新しい要素の次の要素へのアドレスを設定 */ new->prev = p; /* 新しい要素の前の要素へのアドレスを設定 */ p->next->prev = new; /* 新しい要素の直後の要素のprevに、新しい要素のアドレスを設定 */ p->next = new; /* 新しい要素の直前の要素のnextに、新しい要素のアドレスを設定 */ } } ↑のところがうまくいきません。 何がだめか教えてください。
- 締切済み
- C・C++・C#
- 単方向リスト
#include<stdio.h> #include<stdlib.h> #include<string.h> struct Address{ char name[100]; char tel[100]; char email[100]; }; struct AddressList { struct Address addr; //データそのもの struct AddressList *next; //後続ノードへのポインタ struct AddressList *prev; }; struct AddressList *this,*last,*new,*first; struct Address *addr; /*--------ここからmain関数------------*/ int main(void){ int n,i; //何番目に入れるか? char quit[100]; //繰り返しを止める時に利用。 first=last=NULL; //まず初期化 addr =(struct Address *)malloc(sizeof(struct Address)); if(addr==NULL){ fprintf(stderr,"malloc:error\n"); exit(1); } while(-1){ printf("整数を入力してください。\n"); scanf("%d",&n); printf("名前を入力してください。\n"); scanf("%s",addr->name); printf("電話番号を入力してください。\n"); scanf("%s",addr->tel); printf("メールアドレスを入力してください。\n"); scanf("%s",addr->email); new =(struct AddressList *)malloc(sizeof(struct AddressList)); //新たに加えるリストの動的メモリー確保 if(new==NULL){ fprintf(stderr,"malloc:error\n"); exit(1); } new->addr=addr; //ここでエラーが発生します。 new->next=NULL; incompatible types in assignment とエラーがでます。 型はあってると思うんですが、、、 よろしくおねがいします。
- ベストアンサー
- C・C++・C#
お礼
ご回答ありがとうございます。 趣味のレベルは、素人に毛が生えた程度だと思います。 >ただ あなたの趣味趣向から仕事に直結する仕事が思い浮かばないですねぇ。。。 全くその通りだと思います。