航空航天大类C语言程设第二次上机练习
第二期更新,主要是第二次上机和练习赛的内容。
Q1(上机A题)一个非负的浮点数(小数部分不超过六位),输出它的小数部分(六位小数保留)和整数部分(空格隔开)
这个题只要稍微熟悉一下变量声明就很好做了,注意给的是非负浮点数,所以少了个坑(狗头)
先给出代码
#include <stdio.h>
int main() {
double x;
scanf("%lf", &x);
int n = x;
double y = x - n;
printf("%d %.6lf", n, y);
return 0;
}
这里x是double
类型,而之后n是int
类型,把x的值赋给n,会涉及类型转换,这种方式浮点数转整数直接抹去小数部分保留整数部分,所以转换整型不同于取整函数。
不妨看下面两个例子:
int a = 2.333;
int b = -2.333;
#输出a和b的值
2 -2
对于正数,相当于⌊x⌋\lfloor{x}\rfloor⌊x⌋,取不大于xxx的最大整数,但对于负数,相当于⌈x⌉\lceil{x}\rceil⌈x⌉,取大于xxx的最小整数,所以说不说明数的正负形坑就出来了吧。
Q2(上机C题)
单项式求积:有多个单项式项式AiA_{i}Ai,Ai=ki×xpiA_i=k_i \times x^{p_i}Ai=ki×xpi,已知kik_{i}ki和pip_{i}pi,需要求这些单项式的乘积,并表达成一个简单的单项式形式k×xpk \times x ^ pk×xp,,输出形式为k*x^p
,其中kkk和ppp为整数。
输入描述,连续多行
每行两个数,用空格分隔,分别为 kik_iki,pip_ipi
如果某一行两个数的值为0 0
,则代表结束输入
单项式相乘,系数相乘,指数相加,∏i=1nAi=(∏i=1nki)×x∑i=1npi\prod_{i=1}^{n}A_{i} = (\prod_{i=1}^nk_i) \times x^{\sum_{i=1}^{n}p_{i}}∏i=1nAi=(∏i=1nki)×x∑i=1npi
kkk,ppp的初值设为1和0,每次读入合法的kik_iki和pip_ipi就用赋值运算符+=
和*=
更新kkk,ppp的值,最后格式化输出
代码:
#include <stdio.h>
int main() {
int k = 1, p = 0, ki, pi;
while (1) {
scanf("%d %d", &ki, &pi);
if (ki == 0 && pi == 0) break;
else {
k *= ki, p += pi;
}
}
printf("%d*x^%d", k, p);
return 0;
}
输入样例:
3 5
6 10
0 0
输出样例:
18x^15
Q3(上机F题)
输入一个圆的圆心坐标(x,y)(x,y)(x,y),和半径