C プログラムが比較的単純な場合 (単なるprintf
コマンドなど)、コマンド プロンプトは次のように適切に出力します。
コード:
#include <stdio.h>
int main(){printf("Get out!");}
出力:
C:\Users\amish>gcc whatever.c
C:\Users\amish>a
Get out!
しかし、コードが次のようなものである場合:
#include <stdio.h>
int is_composite(int a){
int i;
int b = 0;
if(a == 1){b = 2;};
for(i=2; i<a;i++){
if(a%i ==0){b = 1;
break;
};
}
return b;}
int main(){
int n1;
int n2;
int k;
int l;
printf("ENTER TWO NUMBERS");
scanf("%d", &n1);
scanf("%d", &n2);
for(k = n1; k<=n2; k++){
l = is_composite(k);
if(l == 0){printf("%d ", k);}
}
return 0 ;}
出力:
C:\Users\amish>gcc whatever.c
C:\Users\amish>a
Access is denied.
単純なコードでは機能するのに、複雑なコードでは機能しない理由が本当にわかりません。それとも、まったく別の理由があるのでしょうか? どなたか助けていただければ幸いです。