• ベストアンサー

マイクロソフトVisualC++使用。コンパイルとビルドにエラーはないのに実行できない。

超初心者です。 今、本を見ながら練習問題をこなしている状況なんですけど。 足し算のプログラムをつくりましょう、ということで main() { int c = 0, i= 0; while ( i <5 ) { i++; c = c+ i; } } と入力し、コンパイルしビルドしました。両方ともエラーもなく終了し、いざ実行すると『PressAnyKey。。』のみ表示され計算もなにもなく終わってしまうのです。いったいなにが足りないのでしょう・・。 あと、C言語のエラー集などを載せているサイトをご存知だったら教えてください。超初心者にとって一番頼りになるのは、うまくいっている状況を載せられるのではなく、エラーになったときの状況をどうにかしてくれるところなので・・・。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nikorin
  • ベストアンサー率24% (47/191)
回答No.2

表示がされてないだけで、実行はされてるんじゃないでしょうか。 whileループの最後に、 printf("%d %d\n", i, c); とか付け加えてみたらどうでしょう。

yukky25
質問者

お礼

ありがとうございました。 ご指示のとおりにやってみたら、できました。 5になるまで1ずつ足して行く、という問題だったので思ったとおりの 表示で納得しました。

その他の回答 (1)

  • timber
  • ベストアンサー率29% (218/739)
回答No.1

ちゃんと動作しています。 VC++はデバッグモードで動作したあと『PressAnyKey。。』の表示を出して終わります。 動いてないように見えるのは画面表示されないプログラムだからです。 c = c+ i; の後に下の1行を追加してみてください。 printf("%d\n",c);

yukky25
質問者

お礼

早速の回答ありがとうございます。 printf("%d\n",c); 入れたら表示されました。なるほど・・・。

関連するQ&A

  • なぜコンパイルエラーにならない?

    flag: for ( int i= 0 ; i<5 ; i++){ for(int j=0 ; j<3 ; j++){ label:  if(i<j){ i++; continue label; } System.out.println("あ"); } } ある問題集の問題なのですが、ラベルをfor かwhile 以外につけているのでコンパイルエラーになるという問題でした。 納得。 確かに、打ち込んでみると、コンパイルエラーになります。 しかし、continue を break に変更すると、コンパイルエラーにはならないのです。 なぜでしょうか。 テキストでは、break であれ continueであれ、for や while 以外につけるとコンパイルエラーになると書かれています。 どなたか、教えていただけますか?

    • ベストアンサー
    • Java
  • コンパイル時のエラー

    毎度c言語の質問でお世話になっております。 ついにコンパイル方法が分かり、いろいろと オブジェクトファイルを作っていますが、 また、わからないことが出てきました。 コンパイルするとエラーになります。 このようにプログラミングすると下のようなエラーが 出てきます。 なぜなのでしょうか? 回答お願いします。 #include <stdio.h> main () { int i = 1; float f = 0.2; double d = 1.25; printf("変数i:%d f:%f d:%lf", i, f, d); return 0; } エラー内容 stray \129 in program stray @ in program   

  • コンパイルで1つエラーが出ます

    http://www.geocities.co.jp/SiliconValley-Oakland/1680/comb_c.htmlのプログラムをコンパイルすると、error C2084: 関数 'int __cdecl main()' はすでに実体を持っています。 とでます。どう直せばいいのでしょうか?

  • コンパイルエラー

    以下のようなソースファイルをコンパイルしたらコンパイルに失敗してしまいました。エラーは『Cls1はabstractで宣言する必要があります。show(int)をCls1で定義しません』と出ます。これはどういうことでしょうか。 interface Int1 { int x=100; void Show(int y); } class Cls1 implements Int1 { public void show(int x) { System.out.println(x); } } class Test12 { public static void main(String args[]) { Cls1 c; c = new Cls1(); c.show(200); } }

    • ベストアンサー
    • Java
  • コンパイルエラーについて。

    今晩は。現在javaについて勉強しているのですが、 コンパイルエラーを解決することが出来ません。 プログラムの内容は好きな文字列を入力し、空白文字を取り除き出力するといったものです。 空白はindexOf()メソッドを使って探し出す。 空白削除はdeleteCharAt()メソッドを使って行う。 というのが条件です。 どなたかご回答おまちしております。 class bf2{ public static void main(String args[])throws IOException{ String t = "end"; String str = ""; int l; int i; int xx=0; String kuhaku = " "; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while(!str.equals(t)){ System.out.print(">"); str = br.readLine(); if(str.equals(t)) break; l = str.length(); i=0; StringBuffer str2 = new StringBuffer(str); while(i<l){ xx = str2.indexOf(kuhaku); str2.deleteCharAt(xx); //こちらがコンパイルエラー会場です。 i++; System.out.println(str2); } } } } Exception in thread "main" java.lang.StringIndexOutOfBoundsException at java.lang.StringBuffer.deleteCharAt(Unknown Source)

    • ベストアンサー
    • Java
  • コンパイルエラー

    本日からC++を勉強しはじめました。 使用しているコンパイラはBORLAND C++ COMPILER 5.5 です。 #include<iostream> int main(){ cout<<"hello"; return 0; } 上記をコンパイルすると下記のエラーが出ます。 いったいどこがいけないのでしょうか。 どなたか教えてくださいませ。 Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland 123.c: 致命的エラー F1003 C:\BORLAND\BCC55\include\stdcomp.h 5: error 指令: Must use C++ for STDCOMP.H *** 1 errors in Compile *** *** コンパイル終了 ***

  • コンパイル後のエラー。

    こんにちは、質問があります。 下のプログラムを組みました。 コンパイルには成功しましたが、実行することができません。 import java.io.*; public class Gyouretu { public static void main(String[] args) { BufferedReader reader = new BufferedReader( new InputStreamReader(System.in), 1); try{ System.out.println("行列数を入力"); String line = reader.readLine(); int n = Integer.parseInt(line); int a[][] = new int[n][n]; int b[][] = new int[n][n]; int c[][] = new int[n][n]; int i,j,k; for ( i = 0; i < n; i++){ for ( j = 0; j < n; j++){ c[i][j]=0; for ( k = 0; k < n; k++){ c[i][j] += a[i][k] * b[k][j]; System.out.print(c); System.out.print(i); System.out.print(j); } } } }catch (IOException e){ System.out.println("end"); } } } 行列の計算をするプログラムなのですが、コンパイル後に行列数(何行何列か?)を入力するとこんなエラーが出ます。 「'2' は、内部コマンドまたは外部コマンド、  操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 なぜなのか、どうしてもわかりません。 よろしくお願いします。

    • ベストアンサー
    • Java
  • win32アプリケーションコンパイル時のエラー

    #include <windows.h> int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance , LPSTR lpCmdLine, int cmdShow) { MessageBox(NULL,"この文字が出ます","メッセージ",MB_OK); return 0; } 上記ソースをコンパイル時に以下のエラーが出ます ------ ビルド開始: プロジェクト: kcn01, 構成: Debug Win32 ------ リンクしています... MSVCRTD.lib(crtexe.obj) : error LNK2019: 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。 C:\C++練習\kcn01\Debug\kcn01.exe : fatal error LNK1120: 外部参照 1 が未解決です。 ビルドログは "file://c:\C++\kcn01\Debug\BuildLog.htm" に保存されました。 kcn01 - エラー 2、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ========== 2005とSDKを一緒に使用するにある手順1~5は全て行いました ウィンドウズアプリケーションは普通に動作するのですが 空のプロジェクトにして↑のソースをコンパイルするとエラーが出ます 何か原因がわかる方よろしくお願いします。

  • Xcodeでのcのコンパイルエラーについて。

    Xcodeでc言語のコンパイル #include <stdio.h> int main(void) { printf("%d", 15 + 37); return(0); } をコンパイルすると ld: 2 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) となります。 いろいろ検索してみたのですが、こんな簡単なプログラムのエラーはのっていませんでした。 なにが問題なのでしょうか。 あと use -v ってのもどうやって使うのでしょうか。 よろしくおねがいします。

  • コンパイルエラー

    Borlnd C++ compilerでコンパイルしたのですが、どうしてもエラーがでてしまいます。エラーは、不正な文字’’(0×8140)(関数 main) エラーE2206 文字' ' (0×8140)(関数 main) エラーE2206と二つ同じエラーがあると表示されます。本当に分からないので力を貸したください。お願いします。 /*読み込んだ二つの整数値の大きい方の値を求めて表示(条件演算子)*/ #include <stdio.h> int main(void) { int n1, n2, max; puts("二つの整数を入力してください。");   printf("整数1 : "); scanf("%d", &n1); printf("整数2 : "); scanf("%d", &n2); max = (n1 > n2) ? n1 : n2; printf("大きい方の値は%dです。\n", max); return 0;