設圓柱體的半徑為r、高為h。求其體積v。
/*
*file:compute volume C
*這程序是用于計算圓柱體體積
*/
#include<stdio.h>
#define PI 3.14159
float volume(float r,float h);
void main()
{float radius, height,vol; /*聲明radius, height, vol為float型變量*/
printf(“input radius, height:”); /*提示用戶輸入半徑radius和高height 的值*/
scanf(“%f%f”,& radius,& height); /*從鍵盤輸入兩個實數分別存入變量radius和height*/
vol=volume(radius , height ); /*調用函數volume()計算圓柱體的體積*/
printf(“vol=%f ”,vol); /*輸出圓柱體的體積*/
}
/*
2求兩個整數的和。
#include<stdio.h>
void main ( ) /*求兩數之和*/
{ int a,b,sum; /*變量的定義*/
printf (“Input the two numbers: “);
scanf(“%d%d”,&a,&b);
sum=a+b;
printf ("sum is %d/n", sum);
}
輸入一個四位整數,然后打印出它的四位數字的和。
#include <stdio.h>
main ( )
{ int n,a,b,c,d,sum;
printf("Input n:\n");
scanf ( "%d", &n );
a=n%10; //求個位數
b=n/10%10; //求十位數
c=n/100%10; //求百位數
d=n/1000; //求千位數
sum=a+b+c+d;
printf("n=%d,sum=%d\n",n,sum);
}
求ax2+bx+c=0方程的根。
#include <stdio.h>
#include <math.h>
main()
{ float a,b,c,disc,x1,x2,p,q;
printf("Input a,b,c:\n");
scanf("%f%f%f",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2*a); q=sqrt(disc)/(2*a);
x1=p+q; x2=p-q;
printf("x1=%5.2f\nx2=%5.2f\n",x1,x2);
}
3 求三個整數的最小值。
#include <stdio.h>
main( )
{ //找出三個輸入整數的最小值
int a,b,c,min;
printf("Input a,b,c:");
scanf("%d,%d,%d",&a,&b,&c);
min=a; //把 a的值賦給min
if ( min>b ) min=b; //如果min的值比b的值大,把 b的值賦給min
if ( min>c ) min=c; //如果min的值比c的值大,把 c的值賦給min
printf("a=%d,b=%d,c=%d,min=%d\n",a,b,c,min);
}
輸入三個實數,分別存放在a、b、c中,再把這三個數按從小到大的順序重新放入a,b,c后輸出。
#include <stdio.h>
main( )
{ float a,b,c,temp;
printf("Input a,b,c:\n");
scanf("%f,%f,%f",&a,&b,&c);
printf("Before: a=%6.2f,b=%6.2f,c=%6.2f\n",a,b,c);
if ( a>b )
{temp=a; a=b; b=temp;} //交換變量a與b的值
if ( a>c )
{temp=a; a=c; c=temp;} //交換變量a與c的值
if ( b>c )
{ temp=b; b=c; c=temp; } //交換變量b與c的值
printf("After: a=%6.2f,b=%6.2f,c=%6.2f\n",a,b,c);
}
8樓
根據學生百分制分數得到其五分制成績。要求輸入一個百分制成績,輸出其對應五級(A,B,C,D,F)制的評定。評定的標準是:輸入的分數在90~100分為A,80~89分為B, 70~79分為C, 60~69分為D,0~59分為F,否則顯示出錯信息。(使用if…else if語句選擇分數的范圍)。
#include <stdio.h>
main()
{ int score,grade;
printf("Input your test score: ");
scanf(“%d”,&score);
if(score>100) printf( "Error: that score is out of range..\n");
else if (score >= 90) grade ='A';
else if (score >= 80) grade ='B';
else if (score >= 70) grade ='C';
else if (score >= 60) grade ='D';
else if (score >= 0) grade ='F';
else printf( "Error: that score is out of range..\n");
printf(" Your grade is an %c.\n",grade);
}
9樓
編一程序,由鍵盤輸入字符,然后顯示該字符是否是一個數字字符、大寫字母、小寫字母、一個空格或其它字符。
#include <stdio.h>
main( )
{char c;
printf("Press a character Key:");
c=getchar();
printf("\nCharacter %c is ",c);
if(c>='0'&&c<='9' ) // c>='0'&&c<='9'等價于c>=48&&c<=57
printf("a digit\n");
else if(c>='A'&&c<='Z') // c>='A'&&c<='Z'等價于c>=65&&c<=90
printf("an uppercase letter\n");
else if(c>='a'&&c<='z') // c>='a'&&c<='z'等價于c>=97&&c<=122
printf("an lowercase letter\n");
else if(c= =' ') // c= =' '等價于c= =32
printf("a space\n");
else //否則,不是上述提到的字符。
printf("not a digit,letter,or space\n");
}
10樓
編一程序,判斷某一年是否為閏年。
#include <stdio.h>
main()
{
int year, flag; //flag是標記變量
printf(“Enter the year:\n”);
scanf("%d",&year); //輸入年份存放到變量year中
if(year%4!=0)
flag=0; //做非閏年的標記
else if(year%100!=0)
flag=1; //做閏年的標記
else if(year%400!=0)
flag=0;
else
flag=1;
if ( flag= =1 )
printf("%d is a leap year.\n",year); //如果是閏年執行此句
else
printf("%d is not a leap year.\n",year); //否則,執行此句
}
輸入兩個正整數m和n,求其最大公約數
#include<stdio.h>
void main( )
{ int m,n,t,r;
printf("請輸入m,n:");
scanf("%d,%d",&m,&n);
if(m<n)
{ t=m; m=n; n=t; } //將m、n兩者中大的數放在m中,小的數放在n中。
r=m%n;
while(r)
{ m=n; //原除數作為新的被除數
n=r; //原余數作為新的除數
r=m%n; //求出新的余數r
}
printf("最大公約數為%d\n",n); //退出循環時n為最大公約數。
}
輸入一個正整數,將其各位數字按逆序輸出,例如輸入123,輸出321。
#include <stdio.h>
main( )
{ int num,i;
printf("請輸入一個正整數: ");
scanf("%d",&num);
do
{ i=num%10; //將變量num當前值的個位數賦給i
printf("%d",i); //輸出一位
num=num/10; //去掉num的個位數,為下次循環做準備
} while ( num!=0 ); //可用while(num);替換
printf("\n");
}
用for語句求12+22+32+…+1002的值,并將其結果放在變量sum中。
#include<stdio.h>
main()
{ int i,sum=0; //變量sum為累加器,應初始化為0
for(i=1;i<=100;i++)
{ //循環體開始
sum=sum+i*i; //累加求和
} //循環體結束
printf (“12+22+32+…+1002 =%d\n”,sum);//輸出累加結果
}
編一程序,求n!的值。
#include <stdio.h>
main ( )
{int i,n;
double fac=1; // fac若為整型,則求13!時就會出現數據溢出現象;另注意fac的初值
printf("Enter a positive integer:");
scanf("%d",&n );
for(i=1; i<=n; i++ )
fac=fac*i;
printf( "%d!=%.0f\n",n,fac); //%. Of表示不輸出小數點后部分
}
6編一程序。判斷從鍵盤輸入的自然數m(大于1)是不是素數。素數是指除了1和它本身外,不能被其他任何整數整除的正整數。例如2,3,5,7,11,13等均為素數。
#include <stdio.h>
main( )
{int i,m,flag=1;
printf("請輸入要判別的正整數m:");
scanf("%d",&m);
for(i=2;i<=m-1;i++ ) //用2、3、…、m-1分別除m,以檢測它們是否能整除m
if ( m%i==0 ) //判斷i是否能整除m
{ flag=0; //設置不是素數標志
i=m; //m不是素數,可提前退出循環
}
if ( flag==1 )
printf("%d 是素數。\n",m);
else
printf("%d 不是素數\n",m);
}
利用公式e=1+1/1!+1/2!+1/3!+…+1/n!+…計算無理數常量e的近似值,要求其誤差小于0.00001。
#include <stdio.h>
main ( )
{ int i=1;
float e=1.0,t=1.0;
while (t >= 1e-5 ) //某一項值小于10-5時退出循環
{ t*=1.0/i;
e+=t;
i++;
}
printf("e=%f\n",e);
}
愛因斯坦的階梯問題。設有一階梯,每步跨兩階最后剩1階;每步跨3階最后剩2階;每步跨5階最后剩4階;每步跨6階最后剩5階;只有每步跨7階時,正好到階梯頂。問這個階梯共有多少階?
//程序1
#include<stdio.h>
main()
{int ladders=1;
while(1)
{ if(ladders%2==1&&ladders%3==2&&ladders%5==4&&ladders%6==5&&ladders%7==0)
{printf("共有%d階\n",ladders);
break;
}
ladders++;
}
}
//程序2
#include<stdio.h>
main()
{ int ladders=7;
while(1)
{ if(ladders%3==2&&ladders%5==4&&ladders%6==5)
{ printf("共有%d階。\n",ladders);
break;
}
ladders+=14;
}
}
|