皆编译通过,但可能存在些遗漏,仅供参考
其余章节还没有学习,持续稳定缓慢更新中..
5.1
#include <stdio.h>
int main (void)
{
int num = 0;
int dig = -1; // 初始化-1便于发现错误
printf ("Enter a number: ");
scanf ("%d", &num);
if (num < 0) { //题目并没有说如果输入是负数或五位数会怎么样,所以不更多考虑了
}else if (num < 10) {
dig = 1;
}else if (num < 100) {
dig = 2;
}else if (num < 1000) {
dig = 3;
}else if (num < 10000) {
dig = 4;
}
printf ("The number %d has %d digits", num, dig);
return 0;
}
ps:加个 i f 即可判断输入是否合法,懒得加了
5.2
#include <stdio.h>
int main (void)
{
int hour, hour1, min;
printf ("Enter a 24-hour time: ");
scanf ("%d:%d", &hour, &min);
printf ("Equivalent 12-hour time: ");
if (hour > 12) {
hour1 = hour - 12;
printf ("%d:%.2d", hour1, min);
}
else {
printf ("%d:%.2d", hour, min);
}
switch (hour) {
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12:
printf ("AM");
break;
default: printf ("PM");
break;
}
return 0;
}
ps: 这题感觉写麻烦了,所以附上官方版
5.3
#include <stdio.h>
int main (void)
{
int num;
float price, value, commission1, commission2;
printf ("输入购股数量:");
scanf ("%d", &num);
printf ("输入每股单价:");
scanf ("%f", &price);
value = num * price;
//自己
if (value < 2500.0f){
commission1 = 30.0f + 0.017f * value;
} else if (value < 6250.0f) {
commission1 = 56.0f + 0.0066f * value;
} else if (value < 20000.0f) {
commission1 = 76.0f + 0.0034f * value;
} else if (value < 50000.0f) {
commission1 = 100.0f + 0.0022f * value;
} else if (value < 500000.0f) {
commission1 = 155.0f + 0.001