2017-07-29 4 views
-1

このプログラムを実行すると(コードブロックと完全にアップグレードされた)、次のボックスが表示されます: '' '' .exeが動作を停止しました 問題により、プログラムが正常に動作しなくなりました。 Windowsのプログラムは閉じられ、解決策がある場合に通知します。「」「」C++プログラム(no '/ 0')を実行すると.exeファイルが機能しなくなる

#include <iostream> 

#include <math.h> 

#include <conio.h> 

using namespace std; 

int main() 
{ 

    int no, hlf, arr[no], arrno; 

    cout << "ENTER A NUMBER"; 

    cin >> no; 

    hlf = ceil(no/2); 


    for(int i = 1;i <= no;i++) 
    { 
     for(int j = 2;j <= hlf;j++) 
     { 
      int ij = i/j; 
      if(j != i && ij == 0) 
      { 
       goto cont; 
      } 
      else 
      { 
       continue; 
      } 
     } 
     arr[arrno] = i; 
     arrno++; 
     cont: ; 
    } 

    for(int k = 0;k <= arrno;k++) 
    { 
     cout << arr[k] << " "; 
    } 

    getch(); 
    return 0; 
} 
+8

。 *デバッガー*を使用して、どこを見つけてその理由を理解するのを助けるべきです。おそらく、Eric Lippertの[小さなプログラムのデバッグ方法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)も読んでください。 –

+1

私はあなたがすべての変数とその値を書き留めておき、変更された値を更新するコードを歩くことをお勧めします。コードの問題をすばやく発見できます。 –

+2

ヒントとして:ループがなければ、プログラムの実行は上から下へと進みます。あなたのプログラムは戻ってこないし、変数を遡及的に再定義するようなことはしません。それが初期化される前に 'no'を使うとき、それを考えてください。 –

答えて

0

あなたのコード

  1. のいくつかのミスが#include <conio.h>getch();

  2. アレイの必要はありませんarr[no]宣言が間違っています。それはありますint arr[50];

ここでは正常に動作する修正されたコードです。

#include <iostream> 
#include <math.h> 

using namespace std; 

int main() 
{ 

    int no, hlf, arrno; 
    int arr[50]; 


    cout << "ENTER A NUMBER"; 

    cin >> no; 

    hlf = ceil(no/2); 



    for(int i = 1;i <= no;i++) 
    { 
     for(int j = 2;j <= hlf;j++) 
     { 
      int ij = i/j; 
      if(j != i && ij == 0) 
      { 
       goto cont; 
      } 
      else 
      { 
       continue; 
      } 
     } 
     arr[arrno] = i; 
     arrno++; 
     cont: ; 
    } 

    for(int k = 0;k <= arrno;k++) 
    { 
     cout << arr[k] << " "; 
    } 


    return 0; 
} 

Here is the Screenshot, program runs just fine but i have not check your logic

+0

ここではスクリーンショットですが、プログラムは正常に動作しますが、私はあなたのロジックをチェックしていません:) –

+0

ありがとうございますeneryone – Sri

0

みんなありがとう、私は答えを得ました。それは私の悪い、私は素数を印刷する必要があることを投稿していない。私の最初の質問は、Webフォーラムで。 1つを使用していない。 PS - >おかげで再び

は、名前空間stdを使用して

が含ま類;

int型のmain(){

int numb = 12, half; 

int arra[50], arrno = 0; 

half = ceil(numb/2); 

for(int r = 2;r <= numb;r++) 
{ 
    for(int t = 2;t <= half;t++) 
    { 
     if(r%t != 0 || t == r) continue; 
     else goto rpp; 
    } 
    arra[arrno] = r; 
    arrno++; 
    continue; 
    rpp: 
     continue; 
} 

for (int v = 0;v < arrno;v++) 
{ 
    cout << arra[v] << " "; 
} 
return 0; 

}クラッシュしたプログラム* *を意味

関連する問題