1.计算1234秒等于几分钟几秒?(入门级)
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("1234秒等于%d分钟%d秒\n",1234/60,1234%60);
return 0;
}
2.用单精度浮点数数据类型计算0.1累加1000次输出结果是?
#include <stdio.h>
int main(int argc, char *argv[])
{
float sum=0;
int i,n=1000;
for (i=1;i<=n;i++)
sum+=0.1;
printf("%f\n",sum);
return 0;
}
输出结果是99.999046
这是因为计算机对实数的储存是有限制的。单精度只有32位、双精度有64位。在此题中用双精度数的数据类型则可以得出100.000000的结果。
3.如何比较两个浮点数是否相等?
如果两个浮点数的差的绝对值小于“1e-6“这个数,则可以认为两个浮点数相等。
以上一题为例子,比较sum和100是否相等。
#include <stdio.h>
int main(int argc, char *argv[])
{
float sum=0;
int i,n=1000;
for (i=1;i<=n;i++)
sum+=0.1;
printf("sum=%f\n",sum);
if(sum-100<1e-6)
//关键点:1e-6是负数,则比较的两个数应该是小减去大。
printf("sum=100\n ");
else
printf("sum!=100\n");
return 0;
}
运行结果:
sum=99.999046
sum=100
4.输入两个整数,计算这两个整数的和
#include <stdio.h>
int main(int argc, char *argv[])
{
int a,b,c;
scanf("%d%d",&a,&b);
/*scanf是scan和format的简写,含义是将键盘格式化扫描两个整数,并通过&,保存到变量a,b中间。*/(多行的批注要用/*xxxxx*/)
c=a+b;
printf("%d\n",c);
return 0;
}
输入 1、4
结果 5
5.三位数反转:例如 127->721
方法一:算数型
#include <stdio.h>
int main(int argc, char *argv[])
{
int a;
scanf("%d",&a);
printf("%d%d%d\n",a%10,a/10%10,a/100);
return 0;
}
方法二:格式化输入(有易错点)
#include <stdio.h>
int main(int argc, char *argv[])
{
int a,b,c;
scanf("%1d%1d%1d",&a,&b,&c);
//“%1d”中的1是指读取一位整数,并且不能出现\n,这两点任何一条出错都不能正常显示
printf("%d%d%d\n",c,b,a);
return 0;
}