επιστημη(@episteme) の回答履歴
![](https://gazo.okwave.jp/okwave/images/contents/av_nophoto_100_6.gif)
- ソフトが動かないと連絡がありました。
ソフトが動かないと連絡がありました。 以前作成したソフトが、あるPCだと動かないと連絡が入りました。 他のPCでは問題なく動いているのなのですが、 1台動かないPCがあるそうです。 ウィンドウすら表示されずエラーメッセージが出るそうです。 動かないPCはwindowsXP(バージョン不明)という以外の連絡がなく エラーメッセージもよく分からない状態です(泣) vc2008 DirectX9 SDK を使用して作成いたしました。 先方に連絡も取れず(なぜ連絡が取れないかは察してください・・・) 現状これだけで調べるのはちょっときついので 皆さんの過去の経験でこんなことがあったなど お教えいただければ幸いです。
- C++のoperator関数でのキャストする場合の書き方がまだよく理解
C++のoperator関数でのキャストする場合の書き方がまだよく理解できていません。 下記のコードで、 //ここから #include "stdafx.h" #include <string> #include <iostream> class AutoPtr { char *ptr; public: AutoPtr():ptr(0) { } ~AutoPtr() { delete [] ptr; } // char *operator=(char *ptr) { delete [] this->ptr; this->ptr = ptr; return this->ptr; } operator char *(){ return ptr; } char &operator[](int index) { return ptr[index]; } }; void reverse(char *str) { int i, n; AutoPtr work; n = strlen(str); work = new char[n+1]; strcpy(work, str); for(i=0; i<n; i++) { str[i] = work[n-i-1]; } printf("%s\n", str); } int _tmain(int argc, _TCHAR* argv[]) { char str[] = "ABCDEFG"; reverse(str); return 0; } //ここまで 2番目のoperator関数の定義ですが、 operator char *(){ return ptr; } これは多分、reverse()関数中の、 strcpy(work, str); のworkの展開に用いられると思うのですが、 機能としては、「operator char *」はAutoPtrをchar *にキャストするために使われているらしいのですが、何故この書き方でAutoPtrをchar *型にキャストできるのかがいまいち分かりません。また、2番目のoperator関数の記述「operator char *()」はどこまでが型で、どこからが関数の定義と見なせばよいのでしょうか? 何か勘違いしているかもしれません。理解されている方、御教示いただければと思っています。 よろしくお願い致します。
- プログラミング言語の難易度ランキングを教えてください
プログラミング言語の難易度ランキングを教えてください 言語のみの難易度で結構です。 体験されたプログラミング言語の難易度をランキング形式で教えていただけると ありがたいです。 ちなみに私は、VB→C→現在C++を習得しようとしています。(次はjavaの予定・・・いつになるのか) よろしくお願いします。 あと可能であれば言語の人気も教えてください。(周囲で結構です。)
- ベストアンサー
- C・C++・C#
- scanfprintf
- 回答数3
- Microsoft Visual Studio 2005の関数のことで
Microsoft Visual Studio 2005の関数のことで聞きたいことがあります。 6地点への配達物がある。この5地点を1回だけとおり、移動距離が最小となる巡回順路を求めよ。 6地点の座標は次の通りである。 a(2,2), b(3,3), c(5,4), d(4,2), e(2,5), f(5,0)、ただし、第1番目はaを訪問することとする。 という問題なのですが、どうやってプログラムを書けばいいのかわかりません… 一応、ヒントとして、2地点(x1,y1),(x2,y2)の距離は、√(x1-x2)^2+(y1-y2)^2で算出できるとあります。 そして、もう一つのヒントが、地点a,b,c,d,e,fを1から6の地点とする。 第1の地点、第2の地点。。。第6の地点の地点に対して、1から6を割り当てる。 たとえば、経路として 1-2-3-4-5-6 は一巡の経路になる。一方、1-2-1-3-4-5と なる経路は、a-b-aというように元に戻っているので一巡の経路ではない。 このように、第1の地点に1から6、第2の地点に1から6のように、第1の地点から 第6の地点のそれぞれを1から6の割り当てを行う。この中で、一度、割り当てた地点 が再度割り当てられて場合は、一巡経路でないとして組み合わせから外せば、一巡 経路を求めることができる。その一巡経路の距離を算出し、最短の経路を求めるプロ グラムを作成する。 もうお手上げ状態なので、どなたかわかる方がいましたら、教えて欲しいです。 よろしくお願いします。
- 締切済み
- C・C++・C#
- noname#114320
- 回答数2
- C言語で、「自然数nを入力し、nの約数をすべて求めて出力後、その個数と
C言語で、「自然数nを入力し、nの約数をすべて求めて出力後、その個数と合計を出力をする。尚、nとして0(ゼロ)以下が入力されるまで、何度も繰り返す」という問題をやっています。 出力例は、(3を入力したとして) 「3の約数は 1 3 約数の個数は2個 約数の和は4」というものです。 そこで、コーディングをしたのですが、先生が開発したコンパイラで運用したところ、フリーズが起きて強制終了してしまいました。先生は、「そんなことはない。フリーズが起きるときはそのプログラムにバグがあるときだ」と言ってました。 そこでコーディングしたプログラムは以下の通りです。 #include <stdio.h> main() {int i,j,n,cnt,sum; printf("自然数=");scanf("%d",&n); while(n>=0){ printf("%dの約数は",n); for(i=1;i<=n;i++){ if(n/i>=0){ j=n/i; printf(" %d",j); sum=sum+j; cnt++; j=0;} } printf("\n"); printf("約数の個数は%d個",cnt); printf("約数の和は%d",sum); }} どこかに間違いがありますか? IF文の中でいちいちめんどくさいことをしていますが、気にしないでください。
- vectorのイテレータを大小比較する方法を教えてください。
vectorのイテレータを大小比較する方法を教えてください。 distance(ita, itb) の返り値の正負で判定できるかと 思ったのですが、itb > ita じゃないとエラーになります。 よろしくお願いします。
- 今、学校の課題で自分にとっては難しい課題がでています
今、学校の課題で自分にとっては難しい課題がでています 本当は取る予定の科目でなかったため大変で・・・・・ とりあえずとっかかりすら見つかりません(゜ー゜;Aアセアセ 以下、課題です・・・・ ハーフカード : 数値を二分の一倍します 反転カード : 数値の符号を反転します 二乗カード : 数値を二乗します プレイヤーは配られたすべてのカードを一回ずつ使います。(今回の場合三枚です) たとえば「二乗」二枚と「ハーフ」「反転」を一枚ずつの合計4枚のカードが配られ、出題された整数が3、目標値が16のとき以下の手順でプレイヤーの勝利となります。 3 → 二乗 → 9 → ハーフ → 4 → 反転 → -4 → 二乗 →16 とっかかりだけでいいので、これからの方針などを教えていただければ嬉しいです ↑くわしく教えていただければ最高なのですがそれは高望みですよね・・・・・ とりあえず、どうぞよろしくお願いします!! m(。≧Д≦。)m
- ベストアンサー
- C・C++・C#
- noname#120012
- 回答数9
- ================
================ for(pp = path; *pp != '\0' && *pp == '.';){ if(!strncmp(pp, "../", 3)){ pp += 3; while(bp > base && *--bp != '/'); } ================ http://xn--n9q36mh1hnxuksz7wt.jp/FE21a-pm/t09.html この処理について教えてください。 if文の実行条件がどうしても分からないのです。 !strncmp(pp, "../", 3)はppの要素の先頭3文字と"../"の先頭3文字を比較して 一致しなかった場合にpp += 3;とwhile文を実行すると解釈しています。 つまり、ppの要素の先頭3文字が"../"だった場合は一致するのでif文は 実行されないと思うのですが、解説をみると逆になっています。 (ppの要素の先頭3文字が"../"だった場合は一致するのでif文は実行される。) http://www.kmctec.net/k_gogo/gogo11/gogoans1144.PDF if(!strncmp(pp, "../", 3))をどのように解釈すればいいのでしょうか?
- ベストアンサー
- C・C++・C#
- hiroto-milk
- 回答数3
- c言語を勉強し始めたばかりの専門学校生です。
c言語を勉強し始めたばかりの専門学校生です。 自宅でも学習しようと思い、 Microsoft Visual C++ 2010 Expressをダウンロードしてインストールし、 Visual Studio コマンド プロンプト (2010)を起動したところ、以下のように表示されました。 Setting environment for using Microsoft Visual Studio 2010 x86 tools. ERROR: Cannot determine the location of the VS Common Tools folder. clコマンドを実行しようとしたところ、 'cl' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と表示されました。 そこでvcvarsall.batを実行したところ、最初と同じく Setting environment for using Microsoft Visual Studio 2010 x86 tools. ERROR: Cannot determine the location of the VS Common Tools folder. と表示され、clコマンドが使えません。 試しにvcvars32.batを実行してみても同じでした。 clコマンドが使えるようになる解決法をご存知の方がいらっしゃいましたら、ご教授いただけると助かります。
- 今、学校の課題で自分にとっては難しい課題がでています
今、学校の課題で自分にとっては難しい課題がでています 本当は取る予定の科目でなかったため大変で・・・・・ とりあえずとっかかりすら見つかりません(゜ー゜;Aアセアセ 以下、課題です・・・・ ハーフカード : 数値を二分の一倍します 反転カード : 数値の符号を反転します 二乗カード : 数値を二乗します プレイヤーは配られたすべてのカードを一回ずつ使います。(今回の場合三枚です) たとえば「二乗」二枚と「ハーフ」「反転」を一枚ずつの合計4枚のカードが配られ、出題された整数が3、目標値が16のとき以下の手順でプレイヤーの勝利となります。 3 → 二乗 → 9 → ハーフ → 4 → 反転 → -4 → 二乗 →16 とっかかりだけでいいので、これからの方針などを教えていただければ嬉しいです ↑くわしく教えていただければ最高なのですがそれは高望みですよね・・・・・ とりあえず、どうぞよろしくお願いします!! m(。≧Д≦。)m
- ベストアンサー
- C・C++・C#
- noname#120012
- 回答数9
- c言語のエディターや開発環境でリアルタイムに(ユーザー操作によってコン
c言語のエディターや開発環境でリアルタイムに(ユーザー操作によってコンパイルなどしなくても)構文チェックができるものはありますか? (emacsのflymake-mode以外でお願いします。)
- c#プログラムについて
c#プログラムについて お世話になります。 今までエクセルVBAのプログラム経験は少々ありますが、c#プログラムは初めてです。 分からない事だらけの状況なのですが。 Windowsフォームをいくつか作成しており、 また別でコードファイル(CordFile1.cs)を追加して、そこにエントリポイントである static void Main()を記述して展開させていこうと考えました。 そしてデバックしてみたら、エラー一覧で「~複数のエントリポイントが定義されています~」 と表示され、その時気が付いたのですがいつのまにかProgram.csが出来ており、その中に自然に、 static void Main()が記述されていました。 質問 1)Progarm.csやエントリポイントは自然に出来るものなのでしょうか。 (気付かない間に作成される様な事をしてしまっていたのでしょうか。) 2)また、気付かない内に出来ていたとはいえ、Program.csに自然にエントリポイントが あるのであれば、そこにCordFile1.csで記述していたMain()の内容を移しましたら、 今度は新たなエラーが出る様になってしまいました。 「無効なトークン'('や('=='など)がクラス、構造体またはインターフェースのメンバ 宣言で使用されています。 Program.cs内に記述していく事は間違いなのでしょうか。 どなたかお教え頂きたく、宜しくお願い申し上げます。
- 標準ライブラリのcos関数の値がおかしいです。
標準ライブラリのcos関数の値がおかしいです。 環境は OS:WindowsXP 言語:C++ 開発環境:Visual C++ ExpressiEdition です。 以下がサンプルコードです。 #include<iostream> #include<stdio.h> #include<math.h> int main(){ double y=cos(90.0 * 3.14159265358979323846264338327950288 / 180.0); printf("%lf\n",y); std::cout<<y<<std::endl; printf("%d\n",y*10); std::cout<<y*10<<std::endl; getchar(); return 0; } 上記のコードを実行すると、 0.000000 6.12323e-017 -1076268279 6.12323e-016 と出力されます。 本来なら、cos90の値は0ですから全て「0」と表示されると思うのですが・・・ 原因が分かる方がいらっしゃいましたら、教えていただけると助かります。
- ベストアンサー
- C・C++・C#
- mentalplus
- 回答数2
- C言語の問題でわからない内容教えてください。
C言語の問題でわからない内容教えてください。 #include <stdio.h> int main(void) { char a[3][6] = {"red","green","blue"}; char *b[4] = {"cyan","magenta","yellow","black"}; char *p = (char*) a; char **q = b; printf("%s\n",(p+1)); printf("%s\n",*(q+1)); } の中で char **q = b;の部分は一度char *b[4] = {"cyan","magenta","yellow","black"}; でbをポインタで扱っているので、qを使用するときにポインタを使うときに**にしなければいけないと いうことなのでしょうか? 教えてください。 通常char b[4] = {"cyan","magenta","yellow","black"}; なら、char *q = b;になるのかということです。
- C言語の問題でわからない内容教えてください。
C言語の問題でわからない内容教えてください。 #include <stdio.h> int main(void) { char a[3][6] = {"red","green","blue"}; char *b[4] = {"cyan","magenta","yellow","black"}; char *p = (char*) a; char **q = b; printf("%s\n",(p+1)); printf("%s\n",*(q+1)); } の中で char **q = b;の部分は一度char *b[4] = {"cyan","magenta","yellow","black"}; でbをポインタで扱っているので、qを使用するときにポインタを使うときに**にしなければいけないと いうことなのでしょうか? 教えてください。 通常char b[4] = {"cyan","magenta","yellow","black"}; なら、char *q = b;になるのかということです。
- c#プログラムについて
c#プログラムについて お世話になります。 今までエクセルVBAのプログラム経験は少々ありますが、c#プログラムは初めてです。 分からない事だらけの状況なのですが。 Windowsフォームをいくつか作成しており、 また別でコードファイル(CordFile1.cs)を追加して、そこにエントリポイントである static void Main()を記述して展開させていこうと考えました。 そしてデバックしてみたら、エラー一覧で「~複数のエントリポイントが定義されています~」 と表示され、その時気が付いたのですがいつのまにかProgram.csが出来ており、その中に自然に、 static void Main()が記述されていました。 質問 1)Progarm.csやエントリポイントは自然に出来るものなのでしょうか。 (気付かない間に作成される様な事をしてしまっていたのでしょうか。) 2)また、気付かない内に出来ていたとはいえ、Program.csに自然にエントリポイントが あるのであれば、そこにCordFile1.csで記述していたMain()の内容を移しましたら、 今度は新たなエラーが出る様になってしまいました。 「無効なトークン'('や('=='など)がクラス、構造体またはインターフェースのメンバ 宣言で使用されています。 Program.cs内に記述していく事は間違いなのでしょうか。 どなたかお教え頂きたく、宜しくお願い申し上げます。
- MFCでの進数変換
MFCでの進数変換 始めまして、いまMicrosoftVisualStudio2010でMFCの勉強をしています ここで質問なのですが、ボタンを押されるとエディットボックスにAを表示するんですが このAを10進数の10に変換して表示できないでしょうか? MFCの使える関数でやりたいのですがどなたかご教授お願いします。
- ベストアンサー
- C・C++・C#
- satomin_desu
- 回答数3
- MFCでの進数変換
MFCでの進数変換 始めまして、いまMicrosoftVisualStudio2010でMFCの勉強をしています ここで質問なのですが、ボタンを押されるとエディットボックスにAを表示するんですが このAを10進数の10に変換して表示できないでしょうか? MFCの使える関数でやりたいのですがどなたかご教授お願いします。
- ベストアンサー
- C・C++・C#
- satomin_desu
- 回答数3
- フィボナッチ数列X(n+1)= X(n+1)+X(n) (X(1)=X
フィボナッチ数列X(n+1)= X(n+1)+X(n) (X(1)=X(2)=1) の1項X(1)からX(30)までの値を表示するプログラムを再帰関数を使って作る方法を教えてください。 再帰関数がよくわかりません。
- クラス配列で例外ヌルリファレンスが出ます。
クラス配列で例外ヌルリファレンスが出ます。 private void acountedit_Click(object sender, EventArgs e) { accounts[] acc = new accounts[100]; acc[0].id ="test"; } //accounts定義 public class accounts { public string id, pass; } 何を付け足せばよいのでしょうか
- ベストアンサー
- C・C++・C#
- gemeboyjp1
- 回答数1