滑到底部,文本方便复制。
#include
void fun0(){
/*打印星号菱形*/
int i,j,n=3;
for(i=1;i<=n;++i)
{
for(j=1; j<=n-i; ++j)
printf(" ");
for(j=1; j<=2*i-1; ++j)
printf("*");
printf("\n");
}
for(i=1;i<=n-1;++i)
{
for(j=1; j<=i; ++j)
printf(" ");
for(j=1; j<=2*(n-i)-1;++j)
printf("*");
printf("\n");
}
}
void fun2(){
printf(" * \n");
printf(" ***** \n");
printf("*********\n");
printf(" ***** \n");
printf(" * ");
}
void fun3(){
printf("a\n");
printf(" b\n");
printf(" c\n");
printf(" d\n");
printf(" c\n");
printf(" b\n");
printf("a");
}
void fun4(){
printf("\\n\\n\\n\\n***/n/n/n/n");
}
void fun5(){
/*求两个整数之和*/
int num1,num2;
int sum=0;
printf("请输入两个整数,中间空格隔开:\n");
scanf("%d %d",&num1,&num2);
sum = num1+num2;
printf("num1:%d\tnum2:%d\nsum=%d\n",num1,num2,sum);
}
void fun6(){
/*求两个整数相减的结果*/
int num1,num2;
int jg=0;
printf("请输入两个整数,中间空格隔开(num1-num2):\n");
scanf("%d %d",&num1,&num2);
jg = num1-num2;
printf("num1:%d\tnum2:%d\njg=%d\n",num1,num2,jg);
}
void fun7(){
/*求整数和小数相加的结果,结果强制转换成整数并打印到屏幕*/
int num1;
float num2;
float sum=0;
printf("请输入整数,:\n");
scanf("%d",&num1);
printf("请输入小数,:\n");
scanf("%f",&num2);
sum = num1+num2;
printf("num1:%d\tnum2:%f\nsum=%f\n",num1,num2,sum);
}
void fun8(){
/*求整数和小数相乘的结果,结果强制转换成整数并打印到屏幕*/
int num1;
float num2;
float jg=0;
printf("请输入整数,:\n");
scanf("%d",&num1);
printf("请输入小数,:\n");
scanf("%f",&num2);
jg= num1*num2;
int jg2=(int)(jg);
printf("原结果:jg=%f\n",jg);
printf("num1:%d\t\tnum2:%f\n强制转换后jg2=%d\n",num1,num2,jg2);
}
void fun9(){
/*求两个整数之和并按照16进制形式打印到屏幕*/
int num1,num2;
int sum=0;
printf("请输入两个整数,中间空格隔开:\n");
scanf("%d %d",&num1,&num2);
sum = num1+num2;
printf("num1:%d\t\tnum2:%d\nsum(16进制)=%x\n",num1,num2,sum);
}
void fun10(){
/*求两个小数之和,保留两位小数输出*/
float num1,num2;
float sum=0;
printf("请输入两个小数,中间空格隔开:\n");
scanf("%f %f",&num1,&num2);
sum = num1+num2;
printf("num1:%f\tnum2:%f\nsum=%.2f\n",num1,num2,sum);
}
void fun11(){
/*两个整数乘积*/
int x,y;
int s=0;
printf("请输入两个整数,中间空格隔开:\n");
scanf("%d %d",&x,&y);
s = x*y;
printf("x:%d\t\ty:%d\ns=%d\n",x,y,s);
}
void fun12(){
/*两个整数取余数*/
int x,y;
int temp=0;
scanf("%d %d",&x,&y);
temp = x%y;
printf("x%%y=%d",temp);
}
void fun13(){
/*求两个字符相加的结果,以无符号整型显示在屏幕*/
char c1,c2;
unsigned int s=0;
printf("输入两个字符,空格隔开:\n");
scanf("%c %c",&c1,&c2);
s=c1+c2;
printf("c1:%c\t\tc2:%c\ns=%u",c1,c2,s);
}
void fun14(){
/*由键盘输入小写字母,转换成大写字母并打印到屏幕*/
char ch[50];
int i;
printf("请输入小写字符:\n");
gets(ch);
for(i=0;i=97&&ch[i]<=123){
ch[i]-=32;
}
}
printf("转换后\n");
puts(ch);
}
void fun15(){
/*求两个小数相加的结果,保留整数部分打印到屏幕*/
float num1,num2;
float temp=0.0;
int s=0;
printf("输入两个小数,空格隔开:\n");
scanf("%f %f",&num1,&num2);
temp = num1+num2;
temp=temp/1.0;
s=(int)(temp);
printf("num1:%f\t\tnum2:%f\n整数部分为:%d",num1,num2,s);
}
void fun16(){
/*圆的半径r,圆柱的高度h,求出体积*/
float r,h;
float v;
float PI=3.14;
printf("输入r和h,空格隔开\n");
scanf("%f %f",&r,&h);
v=PI*r*r*h;
printf("%f*%f*%f*%f=%f\n",PI,r,r,h,v) ;
printf("r:%f\t\th:%f\n体积V:%f",r,h,v) ;
}
void fun17(){
/*将“HBWE”译成密码,规律是原字母对应小写字母向后第三个替换,所以"HBWE"译为"kezh",将编码后的结果打印在同一行*/
char ch[]="HBWE";
int i;
for(i=0;i<4;i++){
ch[i]=ch[i]+32+3;
}
puts(ch);
}
void fun18(){
/*用字符输入输出函数编写程序,先后输出5个字符,通过键盘键入China,结果输出后进行换行*/
char ch[5] ;
int i;
for(i=0;i<5;i++){
ch[i] = getchar();
}
for(i=0;i<5;i++){
putchar(ch[i]);
printf("\n");
}
}
void fun19(){
/*使用键盘键入两个整数x,y,计算二者相加的结果,并将结果通过强制类型转换,
转换为双精度浮点型数据赋给变量z,并将z打印输出,输出时要求数据占 12列,
其中小数占4列。*/
int x,y;
int temp=0;
double z=0;
printf("输入两个整数:空格隔开\n");
scanf("%d %d",&x,&y);
temp=x+y;
z=(double)(temp);
printf("x=%d\ny=%d\nz=%12.4lf",x,y,z);
}
void fun20(){
/*使用键盘输入任意英文字母,计将其对应的书禁止ASCII值进行打印输出,并通过强制类型转换,
转换为双精度浮点型数据输出,输出时要求数据占 10列, 其中小数占5列。*/
char ch;
double s;
ch=getchar();
s=(double)(ch);
printf("ch:%c\ns:%10.5lf",ch,s);
}
void fun21(){
/*求ax^2+bx+c=0的根,分别考虑 d=b^2-4ac 大于0、等于0、小于0 的三种情况,用顺序设计即可,输出中要有汉字注明三种情况*/
float r1,r2;
float d=0;
int a,b,c;
float p,q;
int temp1,temp2;
printf("ax^2+bx+c=0\n");
printf("输入a,b,c 空格隔开.\n") ;
scanf("%d %d %d",&a,&b,&c);
d=b*b-4*a*c;
p=(float)(-b);
if(d>0){
q=sqrt(d);
r1=(p+q)/2*a;
r2=(p-q)/2*a;
printf("d>0,方程有两个不相等的实数根。\nr1=%.1f\t\tr2=%.1f\n",r1,r2);
}else if(d<0){
q=sqrt(-d);
r1=p/2*a;
temp1=(int)(r1);
r2=q/2*a;
temp2=(int)(r2);
printf("d<0,方程无实数根,但有2个共轭复根。\nr1=%d+%di\t\tr2=%d-%di\n",temp1,temp2,temp1,temp2);
printf("实际大小:%.2f (+-) %.2fi",r1,r2) ;
}else{
q=sqrt(d);
r1=(p+q)/2*a;
r2=r1;
printf("d=0,方程有两个相等的实数根\nr1=r2=%.1f\n",r1);
}
}
void fun22(){
/*求解一元一次方程ax+b=0,要求,a和b的值有键盘输入,且值可以为小数,
此处默认a不为0;不需要对a是否为0进行判断,在屏幕上打印为:
a的值,b的值以及结果x的值,a,b之间使用水平制表符分割,x单独一行显示*/
float a,b;
float x=0;
scanf("%f %f",&a,&b);
x=(-b) /a;
printf("a=%f\tb=%f\nx=%f",a,b,x);
}
void fun23(){
float x=0,y=0;
float m,n;
printf("x + y = m\n");
printf("x + 2y = n\n");
printf("输入m和n的值,中间空格隔开。\n");
scanf("%f %f",&m,&n);
y=n-m;
x=m-y;
printf("m:%f\tn:%f\nx:%f\ny:%f",m,n,x,y);
}
void fun24(){
/*输入一个四位整数,求出每个位上的数字之和。如5678,5+6+7+8=26,*/
int num;
int a,b,c,d;
printf("请输入一个四位整数\n");
scanf("%d",&num);
a=num/1000;
b=num/100%10;
c=num/10%10;
d=num%10;
printf("number=%d\nsum=%d",num,a+b+c+d);
}
void fun25(){
/*输入任意一个正数(可以是小数),使用sqrt函数求取改整数的开方,并打印,
输出要求数据占7列,小数占4列。
提示需要包含 math.h */
float num,s;
printf("输入一个正数,可以小数\n");
scanf("%f",&num) ;
s=sqrt(num);
printf("num:%f\t\ts=%f\n",num,s);
}
void fun26(){
/*计算两年存款利息,其中本金p0,利息位r,且p0和r的值由键盘输入,
在屏幕打印本息和p1,输出要求数据占10列,小数占2列,p0为整数,r为单精度浮点型数据,
p1为双精度浮点数。*/
int p0;
float r;
double p1,p2,g1,g2;
double t;
printf("输入要存的钱数,以及利率(3.2%%填3.2即可),空格分割\n");
scanf("%d %f",&p0,&r);
p1=(double)(p0)*(1.0+r/100);
g1=p1-p0;
p2=(double)(p1)*(1.0+r/100);
g2=p2-p0;
t=g2-g1;
printf("p0:%d\n利率:%.2f%%\np1:%.4lf\n第一年利息金额:%.2lf\np2:%.2lf\n第二年总利息金额:%.2lf\t",p0,r,p1,g1,p2,g2) ;
printf("第二年利息金额:%.2lf\t\t较第一年利息多出 %.2lf\n",t,t-g1);
}
void main(){
/*fun1();
fun2();
fun3();
fun4();
fun5();
fun6();
fun7();
fun8();
fun9();
fun10();
fun11();
fun12();
fun13();
fun14();
fun15();
fun16();
fun17();
fun18();
fun19();
fun20();*/
fun21();
}
、
#include
void fun0(){
/*打印星号菱形*/
int i,j,n=3;
for(i=1;i<=n;++i)
{
for(j=1; j<=n-i; ++j)
printf(" ");
for(j=1; j<=2*i-1; ++j)
printf("*");
printf("\n");
}
for(i=1;i<=n-1;++i)
{
for(j=1; j<=i; ++j)
printf(" ");
for(j=1; j<=2*(n-i)-1;++j)
printf("*");
printf("\n");
}
}
void fun2(){
printf(" * \n");
printf(" ***** \n");
printf("*********\n");
printf(" ***** \n");
printf(" * ");
}
void fun3(){
printf("a\n");
printf(" b\n");
printf(" c\n");
printf(" d\n");
printf(" c\n");
printf(" b\n");
printf("a");
}
void fun4(){
printf("\\n\\n\\n\\n***/n/n/n/n");
}
void fun5(){
/*求两个整数之和*/
int num1,num2;
int sum=0;
printf("请输入两个整数,中间空格隔开:\n");
scanf("%d %d",&num1,&num2);
sum = num1+num2;
printf("num1:%d\tnum2:%d\nsum=%d\n",num1,num2,sum);
}
void fun6(){
/*求两个整数相减的结果*/
int num1,num2;
int jg=0;
printf("请输入两个整数,中间空格隔开(num1-num2):\n");
scanf("%d %d",&num1,&num2);
jg = num1-num2;
printf("num1:%d\tnum2:%d\njg=%d\n",num1,num2,jg);
}
void fun7(){
/*求整数和小数相加的结果,结果强制转换成整数并打印到屏幕*/
int num1;
float num2;
float sum=0;
printf("请输入整数,:\n");
scanf("%d",&num1);
printf("请输入小数,:\n");
scanf("%f",&num2);
sum = num1+num2;
printf("num1:%d\tnum2:%f\nsum=%f\n",num1,num2,sum);
}
void fun8(){
/*求整数和小数相乘的结果,结果强制转换成整数并打印到屏幕*/
int num1;
float num2;
float jg=0;
printf("请输入整数,:\n");
scanf("%d",&num1);
printf("请输入小数,:\n");
scanf("%f",&num2);
jg= num1*num2;
int jg2=(int)(jg);
printf("原结果:jg=%f\n",jg);
printf("num1:%d\t\tnum2:%f\n强制转换后jg2=%d\n",num1,num2,jg2);
}
void fun9(){
/*求两个整数之和并按照16进制形式打印到屏幕*/
int num1,num2;
int sum=0;
printf("请输入两个整数,中间空格隔开:\n");
scanf("%d %d",&num1,&num2);
sum = num1+num2;
printf("num1:%d\t\tnum2:%d\nsum(16进制)=%x\n",num1,num2,sum);
}
void fun10(){
/*求两个小数之和,保留两位小数输出*/
float num1,num2;
float sum=0;
printf("请输入两个小数,中间空格隔开:\n");
scanf("%f %f",&num1,&num2);
sum = num1+num2;
printf("num1:%f\tnum2:%f\nsum=%.2f\n",num1,num2,sum);
}
void fun11(){
/*两个整数乘积*/
int x,y;
int s=0;
printf("请输入两个整数,中间空格隔开:\n");
scanf("%d %d",&x,&y);
s = x*y;
printf("x:%d\t\ty:%d\ns=%d\n",x,y,s);
}
void fun12(){
/*两个整数取余数*/
int x,y;
int temp=0;
scanf("%d %d",&x,&y);
temp = x%y;
printf("x%%y=%d",temp);
}
void fun13(){
/*求两个字符相加的结果,以无符号整型显示在屏幕*/
char c1,c2;
unsigned int s=0;
printf("输入两个字符,空格隔开:\n");
scanf("%c %c",&c1,&c2);
s=c1+c2;
printf("c1:%c\t\tc2:%c\ns=%u",c1,c2,s);
}
void fun14(){
/*由键盘输入小写字母,转换成大写字母并打印到屏幕*/
char ch[50];
int i;
printf("请输入小写字符:\n");
gets(ch);
for(i=0;i
ch[i]-=32;
}
}
printf("转换后\n");
puts(ch);
}
void fun15(){
/*求两个小数相加的结果,保留整数部分打印到屏幕*/
float num1,num2;
float temp=0.0;
int s=0;
printf("输入两个小数,空格隔开:\n");
scanf("%f %f",&num1,&num2);
temp = num1+num2;
temp=temp/1.0;
s=(int)(temp);
printf("num1:%f\t\tnum2:%f\n整数部分为:%d",num1,num2,s);
}
void fun16(){
/*圆的半径r,圆柱的高度h,求出体积*/
float r,h;
float v;
float PI=3.14;
printf("输入r和h,空格隔开\n");
scanf("%f %f",&r,&h);
v=PI*r*r*h;
printf("%f*%f*%f*%f=%f\n",PI,r,r,h,v) ;
printf("r:%f\t\th:%f\n体积V:%f",r,h,v) ;
}
void fun17(){
/*将“HBWE”译成密码,规律是原字母对应小写字母向后第三个替换,所以"HBWE"译为"kezh",将编码后的结果打印在同一行*/
char ch[]="HBWE";
int i;
for(i=0;i<4;i++){
ch[i]=ch[i]+32+3;
}
puts(ch);
}
void fun18(){
/*用字符输入输出函数编写程序,先后输出5个字符,通过键盘键入China,结果输出后进行换行*/
char ch[5] ;
int i;
for(i=0;i<5;i++){
ch[i] = getchar();
}
for(i=0;i<5;i++){
putchar(ch[i]);
printf("\n");
}
}
void fun19(){
/*使用键盘键入两个整数x,y,计算二者相加的结果,并将结果通过强制类型转换,
转换为双精度浮点型数据赋给变量z,并将z打印输出,输出时要求数据占 12列,
其中小数占4列。*/
int x,y;
int temp=0;
double z=0;
printf("输入两个整数:空格隔开\n");
scanf("%d %d",&x,&y);
temp=x+y;
z=(double)(temp);
printf("x=%d\ny=%d\nz=%12.4lf",x,y,z);
}
void fun20(){
/*使用键盘输入任意英文字母,计将其对应的书禁止ASCII值进行打印输出,并通过强制类型转换,
转换为双精度浮点型数据输出,输出时要求数据占 10列, 其中小数占5列。*/
char ch;
double s;
ch=getchar();
s=(double)(ch);
printf("ch:%c\ns:%10.5lf",ch,s);
}
void fun21(){
/*求ax^2+bx+c=0的根,分别考虑 d=b^2-4ac 大于0、等于0、小于0 的三种情况,用顺序设计即可,输出中要有汉字注明三种情况*/
float r1,r2;
float d=0;
int a,b,c;
float p,q;
int temp1,temp2;
printf("ax^2+bx+c=0\n");
printf("输入a,b,c 空格隔开.\n") ;
scanf("%d %d %d",&a,&b,&c);
d=b*b-4*a*c;
p=(float)(-b);
if(d>0){
q=sqrt(d);
r1=(p+q)/2*a;
r2=(p-q)/2*a;
printf("d>0,方程有两个不相等的实数根。\nr1=%.1f\t\tr2=%.1f\n",r1,r2);
}else if(d<0){
q=sqrt(-d);
r1=p/2*a;
temp1=(int)(r1);
r2=q/2*a;
temp2=(int)(r2);
printf("d<0,方程无实数根,但有2个共轭复根。\nr1=%d+%di\t\tr2=%d-%di\n",temp1,temp2,temp1,temp2);
printf("实际大小:%.2f (+-) %.2fi",r1,r2) ;
}else{
q=sqrt(d);
r1=(p+q)/2*a;
r2=r1;
printf("d=0,方程有两个相等的实数根\nr1=r2=%.1f\n",r1);
}
}
void fun22(){
/*求解一元一次方程ax+b=0,要求,a和b的值有键盘输入,且值可以为小数,
此处默认a不为0;不需要对a是否为0进行判断,在屏幕上打印为:
a的值,b的值以及结果x的值,a,b之间使用水平制表符分割,x单独一行显示*/
float a,b;
float x=0;
scanf("%f %f",&a,&b);
x=(-b) /a;
printf("a=%f\tb=%f\nx=%f",a,b,x);
}
void fun23(){
float x=0,y=0;
float m,n;
printf("x + y = m\n");
printf("x + 2y = n\n");
printf("输入m和n的值,中间空格隔开。\n");
scanf("%f %f",&m,&n);
y=n-m;
x=m-y;
printf("m:%f\tn:%f\nx:%f\ny:%f",m,n,x,y);
}
void fun24(){
/*输入一个四位整数,求出每个位上的数字之和。如5678,5+6+7+8=26,*/
int num;
int a,b,c,d;
printf("请输入一个四位整数\n");
scanf("%d",&num);
a=num/1000;
b=num/100%10;
c=num/10%10;
d=num%10;
printf("number=%d\nsum=%d",num,a+b+c+d);
}
void fun25(){
/*输入任意一个正数(可以是小数),使用sqrt函数求取改整数的开方,并打印,
输出要求数据占7列,小数占4列。
提示需要包含 math.h */
float num,s;
printf("输入一个正数,可以小数\n");
scanf("%f",&num) ;
s=sqrt(num);
printf("num:%f\t\ts=%f\n",num,s);
}
void fun26(){
/*计算两年存款利息,其中本金p0,利息位r,且p0和r的值由键盘输入,
在屏幕打印本息和p1,输出要求数据占10列,小数占2列,p0为整数,r为单精度浮点型数据,
p1为双精度浮点数。*/
int p0;
float r;
double p1,p2,g1,g2;
double t;
printf("输入要存的钱数,以及利率(3.2%%填3.2即可),空格分割\n");
scanf("%d %f",&p0,&r);
p1=(double)(p0)*(1.0+r/100);
g1=p1-p0;
p2=(double)(p1)*(1.0+r/100);
g2=p2-p0;
t=g2-g1;
printf("p0:%d\n利率:%.2f%%\np1:%.4lf\n第一年利息金额:%.2lf\np2:%.2lf\n第二年总利息金额:%.2lf\t",p0,r,p1,g1,p2,g2) ;
printf("第二年利息金额:%.2lf\t\t较第一年利息多出 %.2lf\n",t,t-g1);
}
void main(){
/*fun1();
fun2();
fun3();
fun4();
fun5();
fun6();
fun7();
fun8();
fun9();
fun10();
fun11();
fun12();
fun13();
fun14();
fun15();
fun16();
fun17();
fun18();
fun19();
fun20();*/
fun21();
}