• ベストアンサー

セグメンテーション違反

約数を表示したいのですが、以下でセグメンテーション違反が発生してしまいます。解説お願いします。 #include<stdio.h> main() { int n, i; scanf("%d",n); for(i=1;i<=n-1;i++){ if(n&i==0){ printf("%d",i); } } }

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

  • ベストアンサー
回答No.1

> scanf("%d",n); scanf("%d",&n); では?

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

ついでに言えば &は「ビット毎のAND」の演算子で、 n & i == 0が「nがiで割り切れる」意味にはなりません。

msnaruo
質問者

お礼

色々恥ずかしい・・・ できました。皆さんありがとうございました。

すると、全ての回答が全文表示されます。
回答No.2

まずCではそのようなエラーは存在しないので環境(OS、コンパイラー)を明らかにすべきです。 またどの段階でエラーになるかも記すべきですね。 scanfの引数は正しいですか?

すると、全ての回答が全文表示されます。

関連するQ&A