Coursera上北大《计算概论A》期中试题
【描述】
给定一组数,前后相邻的两个数相除,输出商最大的两个数及商的值。
【输入】
第一行为数组中浮点数的个数n,n大于2,其余n行为每一行一个浮点数(使用float类型)。
【输出】
前两个数是相除的两个数,最后一个数为最大的商值。
【输入示例】
10
41.0
18467.0
6334.0
26500.0
19169.0
15724.0
11478.0
29358.0
26962.0
24464.0
【输出示例】
18467.000000/ 6334.000000 = 2.915535
【C代码】
---------------
#include<stdio.h>
int main(void) {
/* 数字的个数 */
int i, n;
/* maxq记录截止当前的最大商,初始为0。
maxn记录最大商的分子
maxd记录最大商的分母
*/
float maxq = 0;
float maxn = 0;
float maxd = 0;
/* last2记录当前数的前一个数
last记录当前数
*/
float last2;
float last;
scanf("%d", &n);
/* 输入第一个数,且无需比较 */
scanf("%f", &last);
for(i = 1; i < n; ++i) {
/* 更新本次读入的数 */
last2 = last;
scanf("%f", &last);
if(maxq < last2 / last) {
maxq = last2 / last;
maxn = last2;
maxd = last;
}
}
printf("%f / %f = %f\n", maxn,maxd, maxq);
return 0;
}