C 语言教程 在线

1690c-exercise-example12

参考方法:

#include<stdio.h> 

int main()
{
    int i;
    for(i=101;i<200;i++)
    {
        if(i%2!=0&&i%3!=0&&i%5!=0&&i%7!=0&&i%11!=0&&i%13!=0&&i%17!=0)
            printf("%d\n",i);
    }
    return 0;
}

1689c-exercise-example12

参考方法:

#include<stdio.h>

void f10(){
    int i=0;//设置循环因子:被除数
    int j=0;//除数
    int num=0;//计数变量
    printf("101到200间的素数:\n");
    for(i=101;i<=200;i++){
        int counter=0;//计数器,每次里循环计数器都会清零
        for(j=1;j<=i;j++){
            if(i%j==0){
                counter++;
            }
        }
        //里循环结束后判断被整除的次数
        if(counter==2){
            printf("%d\n",i);
            num++;
        }
    }
    printf("统计:一共%d个素数\n",num);
}

int main(){
    f10();
    return 0;
}

1688c-exercise-example12

参考方法:

#include<stdio.h>
#include<math.h>

int main()
{ 
    int i,j,k;
    for(i=101;i<201;i++)
    {
        k=sqrt(i);   //如果i不能被2~√i间任一整数整除,i必定是素数
        for(j=2;j<=k;j++) if(i%j==0) break;
        if(j>k) printf("%d\n",i);
        //  else printf("%d is  not aprime number",i);
        }
}

1687c-exercise-example11

参考方法:

#include<stdio.h>
int main(void)
{
    int i;
    int f1 = 1;
    int f2 = 1;
    for(i = 1; i <=40; i++)
    {
        if(i == 1)
            printf("%12d",f1);
        else
        {
            f2 = f1 + f2;
            f1 = f2 - f1;
            printf("%12d",f1);
        }

        if(i%4 == 0)
            printf("\n");
    }
    return 0;
}

1686c-exercise-example11

/*  
 * 没有参考答案那么简洁,献丑分享下自己的想法。
 * 因为兔子出生两个月后就可以产兔子,所以存在:
 * 从第3个月开始,每个前后月差值等于前两个月的前后月差值之和;
 * 由此可知某月兔子对数等于前一月兔子数加上前后月差值。  
 */

#include <stdio.h>
int main()
{
  int  a1=0, a2=1, n=1, x, month;
  for(month=1;month<=40;month++)
  {
  if(month>2){ 
    n=n+a2;
    x=a2;
    a2=a1+a2;
    a1=x; 
  }
  printf("%d月的兔子总数为%d\n",month,n);
  }
}