程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言循環控制程序舉例

C語言循環控制程序舉例

編輯:關於C語言
 

【例6.10】用下面的公式求π:


分析:首先,系數為正數的項的分母是4n-3(n為正數項的項數),為負數的項的分母為4n-1(n為負數項的項數),即分母的變化規律是1、3、5、7...的奇數數列,則第n項的分母為2n-1,第10000項的分母為2*10000-1。
 

#include <stdio.h>
#include <math.h>
int main(void)
{
    double p=0,j=1;
    int i;
    for( i=1;i<10000;i++ )  //此處i為項數
    {
        j=pow(-1.0,i+1)/(2*i-1);  //pow(x,y)求x的y次冪
        p+=j;
        printf("%lf\n",4*p);  //輸出每一項的值
    }
    printf("%lf\n",4*p);  //輸出最終pi值
    return 0;
}

i 的值越大,結果越精准,同樣計算時間也更長。

注意:經讀者反饋,筆者意識到以前提供的例子是錯的,上面是更改後的代碼,更改時間為 2014-07-06  1:50:34;錯誤的例子就不提供了。

【例6-11】判斷m是否素數。

#include <stdio.h>
#include <math.h>
int main(void){
    int m,i,k;
    printf("Input your number: ");
    scanf("%d",&m);
    k=sqrt(m);  // m 的開方
    for(i=2;i<=k;i++)
        if(m%i==0) break;
    if(i>=k+1)
        printf("%d is a prime number\n",m);
    else
        printf("%d is not a prime number\n",m);
    return 0;
}


【例6-12】求100至200間的全部素數。

#include <stdio.h>
#include <math.h>
int main(void){
    int m,i,k,n=0;
    for(m=101;m<=200;m=m+2){
        k=sqrt(m);  // m 的開方
        for(i=2;i<=k;i++)
            if(m%i==0)  break;
        if(i>=k+1){
            printf("%d\n",m);
            n=n+1;
        }
    }
    printf("\n");
    return 0;
}

注意:經讀者 @ahlei、@婁 @IKGROADS、@啊啊、@hi、@小姐” 的反饋,筆者意識到以前提供的例子讓人費解,將代碼做了修改,就是上面的代碼,修改時間為 2014-07-06  02:05:251。

下面是老代碼:

#include<math.h>
main(){
    int m,i,k,n=0;
    for(m=101;m<=200;m=m+2){
        k=sqrt(m);
        for(i=2;i<=k;i++)
            if(m%i==0)  break;
        if(i>=k+1){
            printf("%d",m);
            n=n+1;
        }
        if(n%n==0)printf("\n");
    }
    printf("\n");
}

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved