作业01
A
#include<stdio.h>
int main() {
int a;
scanf("%d",&a);
int x,y,z;
x = a/100;
y = a%100/10;
z = a%100%10;
if ((x == y && y != z) || (x == z && y != z) || (y == z && x != z)){
puts("Yes");
} else {
puts("No");
}
return 0;
}
B
#include<stdio.h>
#include<math.h>
int main() {
double a,b,c;// 题目没有说边长一定是整数,我试了一下定义成int会出错
scanf("%lf%lf%lf",&a,&b,&c);
// 两边之和大于第三边
if ( (a+b>c) && (a+c)>b && (b+c)>a ) {
double d = (a+b+c)/2.0;
printf("%.2f",sqrt(d*(d-a)*(d-b)*(d-c)));
} else {
printf("Not a triangle.");
}
return 0;
}
C
#include<stdio.h>
#include<math.h>
int main() {
int x;
scanf("%d",&x);
// 题目的大意就是分段函数求值,照着写就好了
// cos就是照着题意来,然后有个求^2和求^4的,不用写多个乘法,麻烦,直接用math.h里的 pow(x,y)就可以了,这个函数返回的是x^y,返回的值是浮点数类型(double/float)
if (x >= 0 && x < 10) {
printf("%.5lf",cos(x + 3.0));
} else if (x >= 10 && x < 20) {
printf("%.5lf", pow(cos(x + 7.5), 2) );
} else if (x >= 20 && x < 30) {
printf("%.5lf", pow(cos(x + 4.0), 4) );
} else {
printf("Not define");
}
return 0;
}
D
#include<stdio.h>
#include<math.h>
// 这里手写了最大值和最小值的函数,回顾一下函数的知识点吧~
int min(int x,int y) {
if (x > y) {
return y;
} else {
return x;
}
}
int max(int x,int y) {
if (x > y) {
return x;
} else {
return y;
}
}
int main() {
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
// 这道题就是看你怎么写更方便,写if判断来判断去太麻烦了。、
// C++的<algorithm>里有min(a,b)和max(a,b)的函数,这两个函数会返回两数之间的最大值和最小值
// C语言的这两个函数我不知道在哪里了(并不在math.h)里 。。我就先自己手写了两个函数,我们就当作是复习函数了吧
// 先求最大数
int mx = -1e9;// 先假设一个无穷小的数当最大值
mx = max(mx, a); // 然后不断拿其他数来更新这个假设的最大值
mx = max(mx, b);
mx = max(mx, c);
// 求最小数
int mi = 1e9;// 同理,先假设一个无穷大的数来当最小值
mi = min(mi, a);// 不断更新
mi = min(mi, b);
mi = min(mi, c);
printf("%d %d",mx, mi);
return 0;
}
E
#include<stdio.h>
#include<math.h>
int main() {
int t;
int cnt = 0;
scanf("%d",&t);
while(t--){// 建议思考一下这里为什么t--是对的,大脑里面模拟一下过程
int a,b;
cnt += 1;// 记一下当前是第几个case
scanf("%d%d",&a,&b);
printf("Case %d: %d\n",cnt,a+b);
}
return 0;
}
F
#include<stdio.h>
#include<math.h>
int main() {
int a,b;
int cnt = 0;
while(scanf("%d%d",&a,&b)){
if (a == 0 && b == 0) break; // 符合停止条件,跳出while循环
cnt += 1;// 记一下当前是第几个case
printf("Case %d: %d\n",cnt,a+b);
}
return 0;
}
G
#include<stdio.h>
#include<math.h>
int main() {
int a,b;
int cnt = 0;
while(scanf("%d%d",&a,&b)!=EOF){// 如果没有输入了,再次输入到了scanf时,scanf就会返回EOF,然后就会退出循环
cnt += 1;// 记一下当前是第几个case
printf("Case %d: %d\n",cnt,a+b);
}
return 0;
}
H
#include<stdio.h>
#include<math.h>
int main() {
double a,b;
int t;
scanf("%d",&t);
while(t--){// 记得思考一下t--为啥是对的
scanf("%lf%lf",&a,&b);
printf("%.1lf\n",(a*b)/2.0);
}
return 0;
}