天天看點

C語言筆記001-用C語言編寫程式

例2-1  在螢幕上顯示一個短句“Hello World!”.

#include <stdio.h>

int main(void)

{

      printf("hello world!\n");

      return 0;

}

例2-2  在螢幕上顯示兩個短句“Programming is fun.”和”And programming in C is even more fun!“,每行顯示一句。

#include <stdio.h>

int main(void)

{

      printf("Programming is fun.\n");

      printf("And programming in C is even more fun!\n");

      return 0;

}

例2-3  求華氏溫度100F對應的攝氏溫度。計算公式如下:

c=

式中:c表示攝氏溫度,f表示華氏溫度。

#include<stdio.h>

int main(void)

{

      /*定義兩個整形變量,celsius表示攝氏度,fahr表示華氏度*/

      int celsius,fahr;

      fahr=100;

      celsius=5*(fahr-32)/9;

      printf("fahr=%d,celsius=%d\n",fahr,celsius);

      return 0;

}

例2-4  為鼓勵居民節約用水,自來水公司采取用水量按月分段計費的辦法,居民應交水費y(元)與月用水量x(噸)的函數關系式如下(設x≥0)。輸入使用者的月用水量x(噸),計算并輸出該使用者應支付的水費y(元)(保留兩位小數)。

/*計算二分段函數*/

#include<stdio.h>

int main(void)

{

      double x,y;

      printf("Enter x(x>=0):\n");

      scanf("%lf",&x);

      if(x<=15){

           y=4*x/3;

      }

      else{

           y=2.5*x-10.5;

      }

      printf("y=f(%f)=%.2f\n",x,y);

      return 0;

}

例2-5  堅持的力量。以第一天的能力值為基數,用initial表示,能力值相比前一天提高的值factor就是努力參數,堅持天數為day,讓我們一起來看看堅持的力量。輸入能力的初始值initial、努力參數factor和堅持天數day,根據下列公式計算出堅持努力後達到的能力值,輸出時保留兩位小數。

/* 堅持的力量*/

#include<stdio.h>

#include<math.h>

int main(void)

{

      int day;

      double factor,initial,result;

      printf("Enter initial:");

      scanf("%lf",&initial);

      printf("Enter factor:");

      scanf("%lf",&factor);

      printf("Enter day:");

      scanf("%d",&day);

      result=initial*pow(1+factor,day);

      printf("result=%.2f\n",result);

      return 0;

}

例2-6  輸入兩個整數lower和upper,輸出一張華氏-攝氏溫度轉換表,華氏溫度的取值範圍是[lower,upper],每次增加1℉,計算公式如下:

c=

式中c表示攝氏溫度,f表示華氏溫度。

#include<stdio.h>

int main(void)

{

      int fahr,lower,upper;

      double celsius;

      printf("Enter lower:");

      scanf("%d",&lower);

      printf("Enter upper:");

      scanf("%d",&upper);

      if(lower<=upper){

           printf("fahr celsius\n");

      for(fahr=lower;fahr<=upper;fahr++){

           celsius=5.0*(fahr-32)/9.0;

           printf("%4d%6.1f\n",fahr,celsius);

      }

      }

      else{

           printf("Invalid value\n");

      }

      return 0;

}

例2-7  輸入一個正整數n,求。

/*計算1+2+3+。。。+n*/

#include<stdio.h>

int main(void)

{

      int i,n,sum;

      printf("Enter n:");

      scanf("%d",&n);

      sum=0;

      for(i=1;i<=n;i++)

      {

           sum=sum+i;

      }

      printf("Sum of numbers from 1 to %d is %d\n",n,sum);

      return 0;

}

例2-8  輸入一個正整數n,計算1--+-+…的前n項之和。

/*計算1-1/3+1/5-1/7+...共n項之和 */

#include<stdio.h>

int main(void)

{

      int denominator,flag,i,n;

      double item,sum;

      printf("Enter n:");

      scanf("%d",&n);

      /*執行循環前,給變量賦初值*/

      flag=1;

      item=1;

      denominator=1;      //每項的分母

      sum=0;

      for(i=1;i<=n;i++)

      {

           sum=sum+item;

           flag=-flag;

           denominator=denominator+2;

           item=flag*1.0/denominator;

      }

      printf("sum=%f\n",sum);

      return 0;

}

例2-9  從鍵盤輸入一個正整數n,計算n!。

/*輸入一個正整數n,求n!*/

#include<stdio.h>

int main(void)

{

      int i,n;

      double product;

      printf("Enter n:");

      scanf("%d",&n);

      product=1;

      for(i=1;i<=n;i++)

      {

           product=product*i;

      }

      printf("product=%.0f\n",product);

      return 0;

}

例2-10  輸入一個正整數n,生成一張2的乘方表,輸出到的值,可以調用幂函數計算2的乘方。

#include<stdio.h>

#include<math.h>

int main(void)

{

      int i,n;

      double power;

      printf("Enter n:");

      scanf("%d",&n);

      for(i=0;i<=n;i++){

           power=pow(2,i);

           printf("pow(2,%d)=%.0f\n",i,power);

      }

      return 0;

}

例2-11  輸入一個正整數n(n16),生成一張階乘表,輸出0!到n!的值。要求定義和調用函數fact(n)計算n!,函數類型是double。

#include<stdio.h>

double fact(int n);

int main(void)

{

      int i,n;

      double result;

      printf("Enter n:");

      scanf("%d",&n);

      for(i=0;i<=n;i++){

           result=fact(i);

           printf("%d!=%.0f\n",i,result);

      }

      return 0;

}

double fact(int n)

{

      int i;

      double product;

      product=1;

      for(i=1;i<=n;i++){

           product=product*i;

      }

      return product;

}

參考資料