1. 时间转换
给定秒数 --> 输出秒数 转化成 时/分/秒
//时间转换
//给定秒数 --> 转换成 小时/分/秒
int main()
{//输入int seconds = 0;int h = 0;//小时int m = 0;//分钟int s = 0;//秒scanf("%d", &seconds);//计算h = seconds / 60 / 60;m = seconds / 60 % 60;s = seconds % 60;//输出printf("%d %d %d", h, m, s);return 0;
}
2.输入成绩/计算总成绩
//总成绩和平均分计算
//法一
int main()
{//输入double score[3] = { 0 };//三科成绩scanf("%lf %lf %lf", &score[0], &score[1], &score[2]);//计算double sum = score[0] + score[1] + score[2];double avg = sum / 3.0;//输出printf("%.2lf %.2lf\n", sum, avg);return 0;
}//法二
int main()
{//输入计算int i = 0;double score = 0.0;double sum = 0.0;for (i = 0; i < 3; i++){scanf("%lf", &score);sum += score;}printf("%.2lf %.2lf\n", sum, sum / 3);return 0;
}
3.kiki 喝酸奶
一箱酸奶有 n 盒未打开,kiki 每h分钟可以喝光一盒酸奶,并且在一盒酸奶喝完之前不会再喝另外一盒那么经过 m 分钟后,还有多少盒未打开酸奶?(m<=n*h)
- 情况一 : 刚好喝完一瓶 (n-m/h)
- 情况二 : 还没喝完一瓶 , 但是已经打开了 (n-m/h-1)
- 要求:可以多组输入 ---> 对于多组输入 , 考虑 scanf 函数的返回值 !
int main()
{int n = 0;int h = 0;int m = 0;while (scanf("%d %d %d", &n, &h, &m) != EOF){if (m % h){printf("%d\n", n - m / h - 1);}else{printf("%d\n", n - m / h);}}printf("\n");return 0;
}
4.进制A+B
输入一个十六进制a,和一个八进制数b,输出a+b的十进制结果
int main()
{int a = 0;int b = 0;scanf("%x %o", &a, &b);printf("%d\n", a + b);return 0;
}
- 16进制,8进制只是数据的表示形式,实际上都是整数
- 16进制是以 0x 开头 %x
- 8进制是以 0 开头的 %o
5.网购
双11,衣服打7折;双十二,衣服打8折;如果有优惠劵可以额外减50元(仅可以在双11或双12使用),求kiki最终花钱数 ;
输入描述 : 看中衣服价格 当天月份 当天日期 是否有优惠劵(有 -> 1 ,无 -> 0)
注意 : 不要指望商家到找你钱
int main()
{double price = 0.0;int month = 0;int day = 0;int flag = 0;//是否有优惠劵double cut = 1.0;double last = 0.0;//输入scanf("%lf %d %d %d", &price, &month, &day, &flag);if (month == 11 && day == 11){cut = 0.7;if (flag == 1){last = price*cut - 50;}else{last = price * cut;}}else if (month == 12 && day == 12){cut = 0.8;if (flag == 1){last = price * cut - 50;}else{last = price * cut;}}else{last = price;}if (last < 0.0){printf("%.2lf\n", 0.0);}else{printf("%.2lf\n", last);}return 0;
}//简化int main()
{double price = 0.0;int month = 0;int day = 0;int flag = 0;double cut = 1.0;double last = 0.0;scanf("%lf %d %d %d", &price, &month, &day, &flag);if (month == 11 && day == 11){cut = 0.7;flag = 1;}if (month == 12 && day == 12){cut = 0.8;flag = 1;}last = price * cut - flag * 50;if (last < 0.0){printf("%.2lf", 0.0);}else{printf("%.2lf", last);}return 0;
}
6.争夺前 5 名
输入一个数值 n ( n<=40) : 表示输入的学生成绩的个数
---> 输入学生成绩
---> 输出最高的前五个成绩
//争夺前5名
int main()
{//输入int n = 0;//个数int arr[40] = { 0 };//成绩scanf("%d", &n);int i = 0;for (i = 0; i < n; i++){scanf("%d", &arr[i]);}//找出前五名 -- 排序 -- 冒泡排序 -- 升序 -- 后5个元素//趟数for (i = 0; i < n - 1; i++){//一趟冒泡排序需要进行 多少对 的元素比较for (int j = 0; j < n - 1 - i; j++){if (arr[j] > arr[j + 1]){int tmp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = tmp;}}}for (i = n - 1; i > n - 6; i--){printf("%d ", arr[i]);}return 0;
}