C作业3
14.编写一个程序。请实现以下功能:(威海精讯畅通)
输入三个数,分别为年、月、日,输出此日是该年的第几天。
输入:
XXX XXX XXX
输出:
此日是该年的第XXX 天
示例:
输入 2020 2 20
程序输出 此日是该年的第51 天
#include <stdio.h>
int main(int argc,char* argv[])
{
int year,mouth,day;
scanf("%d %d %d",&year,&mouth,&day);
int sum=day;
int ym[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if((year%400==0)||(year%4==0&&year%100!=0))
{
ym[1]=29;//闰年
}else
{
ym[1]=28;//平年
}
for(int i=1;i<mouth;i++){
sum+=ym[i-1];
}
printf("此日是该年的第%d天\n",sum);
return 0;
}
12. 编写一个程序。实现输入一个三位数,判断是否是水仙花数
#include <stdio.h>
int main(int argc,char* argv[])
{
int num,ge,shi,bai;
scanf("%d",&num);
if(num>=0&&num<=999){
ge=num%10;
shi=num%100/10;
bai=num/100;
if(bai*100+shi*10+ge==ge*ge*ge+shi*shi*shi+bai*bai*bai){
printf("是水仙花");
}else{
printf("不是水仙花");
}
}
return 0;
}
10. 已知学生成绩(100分为满分)与等级的对应关系为: (中科四平)
成绩(grade) 等级
90<=grade<=100 A
80<=grade<90 B
70<=grade<80 C
60<=grade<70 D
grade<60 E
请你编写一个程序,要求:输入学生成绩,输出学生成绩对应的等级。(提示:使用switch…case 语句)
#include <stdio.h>
int main(int argc,char* argv[])
{
int grade;
scanf("%d",&grade);
switch(grade/10)
{
case 10:
case 9: printf("A\n"); break;
case 8: printf("B\n"); break;
case 7: printf("C\n"); break;
case 6: printf("D\n"); break;
default: printf("E\n"); break;
}
return 0;
}
16. 编写一个程序。有 4 个变量 a,b,c,d,我们提前并不知道他们的值,请用你的方式将他们从大到小排序。算法任意
#include <stdio.h>
int main() {
int a, b, c, d;
printf("输入4个整数:\n");
scanf("%d %d %d %d", &a, &b, &c, &d);
// 使用条件表达式进行排序
int max = (a > b) ? (a > c ? (a > d ? a : d) : (c > d ? c : d)) : (b > c ? (b > d ? b : d) : (c > d ? c : d));
int second = (a > b) ? (b > c ? (b > d ? b : (c > d ? c : d)) : (a > d ? a : d)) : (a > c ? (a > d ? a : d) : (c > d ? c : d));
int third = (a > b) ? (b > c ? (c > d ? c : d) : d) : (a > c ? (c > d ? c : d) : d);
int fourth = (a < b) ? (a < c ? (a < d ? a : d) : (c < d ? c : d)) : (b < c ? (b < d ? b : d) : (c < d ? c : d));
printf("打印结果为: %d %d %d %d\n", max, second, third, fourth);
return 0;
}