题目来源:pta
实验一 数据类型与运算
1 计算平均分
已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均成绩(结果按整型输出)。
输入格式:
本题无输入
输出格式:
按照下列格式输出结果:
math = 87, eng = 72, comp = 93, average = 计算所得的平均成绩
本题思想:
利用C语言做简单的加减乘除运算
#include <stdio.h>
int main()
{
int a,b,c,ave;
a=87;
b=72;
c=93;
ave=(a+b+c)/3;
printf("math = %d, eng = %d, comp = %d, average = %d",a,b,c,ave);
return 0;
}
2 整数152的各位数字
本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值。
输入格式:
本题无输入。
输出格式:
按照以下格式输出:
152 = 个位数字 + 十位数字10 + 百位数字100
本题思想:
利用C语言做数字的取余运算(需记住如何获取一个三位数上每一位的数字,在后面判断水仙花数时也会用到此方法)
#include <stdio.h>
int main()
{
int A,a,b,c;
A=152;
a=A%10;
b=(A/10)%10;
c=A/100;
printf("%d = %d + %d*10 + %d*100",A,a,b,c);
return 0;
}
3 逆序的三位数
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
输入格式:
每个测试是一个3位的正整数。
输出格式:
输出按位逆序的数。
输入样例:
123
输出样例:
321
本题思想:
和上一题类似,只不过需要判断逆序后百位上的数字是否为0
#include <stdio.h>
int main()
{
int A,a,b,c;
scanf("%d",&A);
a=A/100;
b=(A/10)%10;
c=A%10;
if(c==0)
{
if(b==0)
printf("%d",a);
else printf("%d%d",b,a);
}
else printf("%d%d%d",c,b,a);
return 0;
}
4 华氏温度转化为摄氏温度
将华氏温度转化为摄氏温度(下式中c表示摄氏温度,f表示华氏温度)。
c=5/9 (f-32)
输入格式:
直接输入一个实数,没有其它任何附加字符。
输出格式:
在一行中按照“c=结果”的顺序输出,结果为保留2位小数的实数,没有其它任何附加格式控制。
输入样例:
34
输出样例:
c=1.11**
本题思想:
由于结果为保留2位小数,所以需要用到float或者double类型。
另外,注意c=5/9(f-32)在编译器中的表达。
#include <stdio.h>
int main()
{
float f,c;
scanf("%f",&f);
c=(f-32)*5/9;
printf("c=%.2f",c);
return 0;
}
【如果大家还有更好的方法,请到下方评论(题号+代码及思想)哦】