高级语言程序设计课程第四次个人作业
这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/2024C
这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/2024C/homework/13293
学号:102300108
姓名:陈茜蕾
6.16编程练习
第1题
第5题
问题:逻辑混乱
解决:重新理了逻辑,一开始用目标字母加或减数字的方式打印,后面改用A加数字的方式打印。
第7题
第8题
第9题
第10题
问题:没注意到第一次给用户提示和第二次不一样
解决:后面调整了
第12题
第13题
问题:do while 的while后面忘记加逗号
解决:后面补上
第15题
问题1:不知道scanf应该怎么把\n也一起存进字符串中
解决:查找资料后知道getchar可以一个个读入字符
问题2:没有仔细检查数组边界导致越界
解决:重新修改了
第16题
第18题
7.12编程练习
第1题
问题:把==写成=
解决:已修正
第2题
问题:死循环(没每次读取字符导致)
解决:在循环末尾补上getchar
第4题
问题:替换后的!也被替换成!!(原因:先判断.再判断!)
解决:先判断感叹号再判断句号
第5题
问题:和第四题一样的问题,忘记加break了
解决:加上break
第6题
第7题
问题:hour用int类型,后面用double类型进行计算,导致截断
解决:hour改成double类型
第8题
#include <stdio.h>
#define OVERTIME 40
#define FIRST 8.75
#define SECOND 9.33
#define THIRD 10.00
#define FOURTH 11.20
#define TAX1 0.15
#define TAX2 0.20
#define TAX3 0.25
#pragma warning (disable:4996)
int main()
{
double hour = 0;
int choice = 0;
double wage = 0;
double tax = 0;
printf("Input your working hours per week:");
scanf("%lf", &hour);
//加班的时长*1.5
if (hour > OVERTIME) {
hour = OVERTIME + (hour - OVERTIME) * 1.5;
}
while (1)
{
printf("*****************************************************************\n");
printf("Enter the number corresponding to the desired pay rate or action:\n");
printf("1) $8.75/hr\t\t\t\t2) $9.33/hr\n");
printf("3) $10.00/hr\t\t\t\t4) $11.20/hr\n");
printf("5) quit\n");
printf("*****************************************************************\n");
scanf("%d", &choice);
if (choice == 5) {
break;
}
switch (choice)
{
case 1:
wage = FIRST * hour;
break;
case 2:
wage = SECOND * hour;
break;
case 3:
wage = THIRD * hour;
break;
case 4:
wage = FOURTH * hour;
break;
default:
printf("Input false!Please input again in 1~5.\n");
continue;
}
if (wage < 300) {
tax = wage * TAX1;
}
else {
tax += 300 * TAX1;
if (wage < 450) {
tax += (wage - 300) * TAX2;
}
else {
tax += (450 - 300) * TAX2;
tax += (wage - 450) * TAX3;
}
}
printf("工资总额:%.2f ", wage);
printf("税金:%.2f ", tax);
printf("净收入:%.2f\n\n", wage-tax);
}
return 0;
}
第9题
第10题
问题:函数中的tax没有初始化
解决:加上初始化
#include <stdio.h>
#pragma warning (disable:4996)
//计算需要缴的税
double calculateTax(double income, int money) {
double tax = 0;
if (income < money) {
tax = income * 0.15;
}
else {
tax = (income - money) * 0.28 + money * 0.15;
}
return tax;
}
int main() {
int choice = 0;
printf("请选择您的情况:\n1:单身\t\t2:户主\n3:已婚,共有\t4:已婚,离异\n");
scanf("%d", &choice);
printf("请输入您的收入:");
double income = 0;
double tax = 0;
scanf("%lf", &income);
switch (choice) {
case 1:
tax = calculateTax(income, 17850);
break;
case 2:
tax = calculateTax(income, 23900);
break;
case 3:
tax = calculateTax(income, 29750);
break;
case 4:
tax = calculateTax(income, 14875);
break;
}
printf("需缴税:%.2lf", tax);
}
第11题
#include <stdio.h>
#pragma warning (disable:4996)
int main() {
const double artichoke = 2.05;//洋蓟售价
const double beet = 1.15;//甜菜
const double carrot = 1.09;//胡萝卜
double aWeight = 0;
double bWeight = 0;
double cWeight = 0;
char choice;
printf("a洋蓟 b甜菜 c胡萝卜 q退出系统\n");
while (1) {
scanf("%c", &choice);
if (choice == 'q') {
break;
}
switch (choice) {
case 'a':
printf("请输入要选购的洋蓟磅数:");
scanf("%lf", &aWeight);
break;
case 'b':
printf("请输入要选购的甜菜磅数:");
scanf("%lf", &bWeight);
break;
case 'c':
printf("请输入要选购的胡萝卜磅数:");
scanf("%lf", &cWeight);
break;
}
}
double totalWeight = aWeight + bWeight + cWeight;
double totalPrice = artichoke * aWeight + beet * bWeight + carrot * cWeight;
double discount = 0;
double extraFee = 0;
if (totalPrice > 100) {
discount = 5;
totalPrice *= 0.95;//5%打折优惠
}
//计算运费和包装费
if (totalWeight <= 5) {
extraFee = 6.5;
}
else {
extraFee = 14;
//如果有续重计算续重
if (totalWeight>20) {
extraFee += (totalWeight - 20) * 0.5;
}
}
printf("洋蓟售价:%.2lf 重量:%.2lf磅 订购费用%.2lf\n", artichoke, aWeight, artichoke * aWeight);
printf("甜菜售价:%.2lf 重量:%.2lf磅 订购费用%.2lf\n", beet, bWeight, beet * bWeight);
printf("胡萝卜售价:%.2lf 重量:%.2lf磅 订购费用%.2lf\n", carrot, cWeight, carrot * cWeight);
printf("订单总费用:%.2lf\n", totalPrice);
if (discount) {
printf("折扣:%.2lf\n", discount);
}
printf("运费和包装费:%.2lf\n", extraFee);
printf("所有费用:%.2lf\n", totalPrice + extraFee);
}
总结和思考
1:一些编程小问题还在犯,如没有初始化等
2:有时候逻辑混乱,还没想好就开始编程