一、输入任意三位数,计算并输出一个该整数的个位、十位、百位数字之和
#include<stdio.h>
#include<math.h> //用绝对值时要先引用头文件
int main()
{
int x,a,b,c,sum=0;
printf("请输入一个三位整数:");
scanf("%d",&x);
x=abs(x);//int型绝对值用abs(),浮点型用fabs(),长整形用labs()
a=x/100;//得到百位上的数字
b=(x/10)%10;//得到十位上的数字,或者b=x/10-a*10
c=x-a*100-b*10;//得到个位上的数字,或者c=x%10
sum=a+b+c;
printf("%d",sum);
return 0;
}
二、任意输入一三位数,计算并输出该整数的逆序数,该逆序数为正数
#include<stdio.h>
#include<math.h>
int main(void)
{
int x,a,b,c,y;
printf("请输入一个三位整数:");
scanf("%d",&x);
x=abs(x);//对输入的整数取绝对值
a=x/100;
b=(x%100)/10;
c=x%10;
y=c*100+b*10+a;
printf("该整数的逆序数是:%d",y);//注意一定不要漏了%d
return 0;
}
三、海伦凯勒公式求三角形面积和常见的数据转换
#include<stdio.h>
#include<math.h>//引入函数
int main(void)
{
float a,b,c,s,area;
int m=7;
printf("Input a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
s=(a+b+c)/2;//注意表达,如0.5*(a+b+c),1.0/2*(a+b+c),(a+b+c)/2.0,(float)(a+b+c)/2都可以
area=(float)sqrt(s*(s-a)*(s-b)*(s-c));// float用括号括起来
printf("area=%f\n",area);
printf("m/2=%d\n",m/2);//结果为整形,小数部分舍掉
printf("(float)(m/2)=%f\n",(float)(m/2));//m/2的结果为整形,对整形取单精度
printf("(float)m/2=%f\n",(float)m/2);//先把m转换为单精度,在除以2,结果为单精度形式
printf("m=%d\n",m);//原数据
return 0;
}
?
|