Linux Cワンストップ学習問題の答え6.4素数を求める

1440 ワード

素数を求めるこのプログラムはただbreakcontinueの用法を説明するためにこのように書いただけで、実は完全にbreakcontinueを使わないことができて、読者に制御の流れを修正してもらって、breakcontinueを除いて機能を維持して不変です.
それぞれwhileとforを使って2種類書きましたが、コードは以下の通りです.
while:
 #include<stdio.h>
  2 /* 0 100    */
  3 
  4 /*          */
  5 int is_prime(int n)
  6 {
  7         int i=2;
  8         while ( n%i!=0 )
  9                 i++;
 10         if ( n==i )
 11                 printf( "%d
",n ); 12 return 0; 13 } 14 15 /* 0 100 */ 16 int main() 17 { 18 int i=2; 19 while ( i<=100 ) 20 { 21 is_prime(i); 22 i++; 23 }

for:
  1 #include<stdio.h>
  2 /* 0 100    */
  3 
  4 /*          */
  5 int is_prime(int n)
  6 {
  7         int i;
  8         for ( i=2;n%i!=0;i++ );
  9         if ( n==i )
 10                 printf( "%d
",n ); 11 return 0; 12 } 13 14 /* 0 100 */ 15 int main() 16 { 17 // printf ( "1
" ); 18 int i; 19 for ( i=2;i<=100;i++ ) 20 is_prime(i); 21 return 0; 22 }

forループの最初は8行目の後ろに「;」を付けず、どうやってもうまくいかなくて、長い間探してやっと問題を発見して、後でこのような略語を使わないほうがいいです~
転載はソースアドレスを明記してください.http://blog.csdn.net/whorus1/article/list/2あ、ありがとう!