绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
耻辱之战-C语言简单题目比赛
2018-11-06 22:47:22

前言

今天我们公司举行了一次C语言考试,发哥在我们内部群里公然对我发起挑战,结果,我被摩擦了,记录一下。


题目

题目描述
针对等额本金还款模式的客户,写一个程序按顺序输入贷款总额(单位为万元)、月利率、贷款总月数,输出个月客户还款金额(单位为元,取整数)。
等额本金计算公式如下:
每月还款金额= (贷款本金/ 还款总月数)+(本金 - 已归还本金累计额)×每月利率

输入
依次输入贷款总额(整数,单位:万元)、月利率(浮点数)、贷款总月数(整数)

输出
月还款金额(取整数,单位:元)


前面几个题目就不说了,实在太简单,这个题目也很简单,但是我被摩擦就是没有看好题目,我刚开始是拿笔在纸上这样写的。完全没注意题目输出个月客户还款金额

而且,没写出来,后上了个厕所后才写出来。

我刚开始的答案是

#include<stdio.h>
int main()
{
	int a,b;
	float i = 0;
	int s;
	scanf("%d %f %d",&a,&i,&b);
	printf("%d\n",i*10000*a+a*10000/b);
	return 0;
}

结果输出

后面我改成(是对手交了答案从我旁边走过去,我上完厕所后才先起来改一下)

#include<stdio.h>
int main()
{
	int a,b;
	float i = 0;
	int s;
	scanf("%d %f %d",&a,&i,&b);
	s = i*10000*a+a*10000/b;
	printf("%d\n",s);
	return 0;
}

到这里,我就不明白了,为什么我一定要用一个变量接收数据才可以呢?看着同事一个个交卷,自己被摩擦的感觉非常不好,那时候,唉,默默的去上个厕所,他们写完还在旁边讨论,我更加紧张了,这点点,那点点,时间就过去了。

后来结束后,我相信,这样也可以

#include<stdio.h>
int main()
{
	int a,b;
	float i = 0;
	int s;
	scanf("%d %f %d",&a,&i,&b);
	s = i*10000*a+a*10000/b;
	printf("%f\n",i*10000*a+a*10000/b);
	return 0;
}

但这样后面有很多小数点是不符合要求的,随便改成下面的

#include<stdio.h>
int main()
{
	int a,b;
	float i = 0;
	int s;
	scanf("%d %f %d",&a,&i,&b);
	s = i*10000*a+a*10000/b;
	printf("%3.2f\n",i*10000*a+a*10000/b);
	return 0;

}
看到后面输出长度也变成2了

再改一下

#include<stdio.h>
int main()
{
	int a,b;
	float i = 0;
	int s;

	scanf("%d %f %d",&a,&i,&b);
	printf("%3.0f\n",i*10000*a+a*10000/b);
	return 0;
}

输出

这样就正确了,但是前面为什么这样呢?

看文章

嵌入式Linux:C语言 printf详解zhuanlan.zhihu.com图标


所以如果改成这样

#include<stdio.h>
int main()
{
	int a,b;
	float i = 0;
	int s;

	scanf("%d %f %d",&a,&i,&b);
	printf("%7.0f\n",i*10000*a+a*10000/b);
	return 0;

}

输出


补充

我后面一直想不明白,为什么强制类型不生效,所以现在都睡不着,肯定是紧张哪里写错了,没有及时改正,我想了下,这样写也是可以的

#include<stdio.h>
int main()
{
	int a,b;
	float i = 0;
	int s;

	scanf("%d %f %d",&a,&i,&b);
	printf("%d\n",(int)(i*10000*a+a*10000/b));
	return 0;

}

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Linux技术精选专区
创建时间:2020-07-08 10:30:23
Linux,全称GNU/Linux,是一套免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年次释出,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • dapan
    专家
戳我,来吐槽~