设圆柱体的半径为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;
}
}
|