从第三章开始做了啦!
习题3
第一小题,分析下列结果
(1)
#include<stdio.h>
main()
{
int a = 12, b = 3;
float x = 18.5, y = 4.6;
printf("%f\n", (float)(a * b) / 2);
printf("%d\n", (int)x % (int)y);
}
贴图了
(2)
#include<stdio.h>
main()
{
int x = 32, y =81,p,q;
p = x++;
q = --y;
printf("%d %d\n", p,q);
printf("%d %d\n", x ,y);
}
结果贴图
第一小题没啥技术含量的
第二题
参考例3.1程序,从键盘任意输入一个3位整数,编程计算并输出它的逆序列数(忽略整数前的正负号)。例如,输入-123,则忽略负号,由123分离出其百位1、十位2、各个位3,然后计算3100+210+1=321,并输出321。
例题3.1
计算并输出一个三位整数的个位,十位,百位数字之和。
//例题的答案
#include<stdio.h>
main()
{
int x=153,b0,b1,b2,sum;
b2=x/100;
b1=(x-b2*100)/10;
b0=x%10;
sum=b2+b1+b0;
printf("b2=%d,b1=%d,b0=%d,sum=%d\n",b2,b1,b0,sum);
}
上代码,还行吧
#define _CRT_SECURE_NO_WARNINGS//这个是在vs2019里面编译的,这个编译器需要加上这个,否则scanf通过不了
#include<stdio.h>
main()
{
int x, a, b, c;
scanf("%d", &x);
if (x < 0)
{
x = -x;
}
a = x / 100;
b = (x - 100 * a) / 10;
c = x - a * 100 - b * 10;
x = c * 100 + b * 10 + a;
printf("%d", x);
}
第三题
设银行定期存款的年利率rate为2.25%,已知存款期为n年,存款本金为capital元,试编程计算并输出n年后的本利之和deposit
上代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
main()
{
int n;
float capital, deposit,rate=0.0225;
printf("输入本金、存款年数: ");
scanf("%f %d", &capital, &n);
deposit = rate * n * capital+capital;
printf("本利之和:%f\n", deposit);
}
第四题
编程计算并输出一元二次方程ax²+bx+c=0的两个实根,(-b±(b²-4ac)½)/2a,其中a、b、c的值由用户从键盘输入,假设a、b、c的值能够保证方程有两个不相等的实根(即b²-4ac>0)。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
main()
{
int a, b, c;
float x1, x2;
printf("输入一元二次方程的三个参数a、b、c:");
scanf("%d %d %d", &a, &b, &c);
x1 = (float)((-b + sqrt(b * b - 4 * a * c)) / (2 * a));
x2= (float)((-b - sqrt(b * b - 4 * a * c)) / (2 * a));
printf("\n两个结果x1=%f,x2=%f", x1, x2);
}
**
第四章
**