C语言程序设计精髓第4周编程题

    技术2023-11-10  75

    C语言程序设计精髓第4周编程题

    1 分数比较

    #include <stdio.h> int main() { int a, b, c, d, res; printf("Input a/b, c/d:" ); scanf("%d/%d,%d/%d", &a, &b, &c, &d); res = a * d - b * c; if (res > 0) printf("%d/%d>%d/%d\n", a, b, c, d); else if (res < 0) printf("%d/%d<%d/%d\n", a, b, c, d); else printf("%d/%d=%d/%d\n", a, b, c, d); return 0; }

    2 存款利率计算器v2.0

    #include <stdio.h> #include <math.h> int main() { double rate, capital, deposit; int year; char ch; printf("Input rate, year, capital:"); scanf("%lf,%d,%lf", &rate, &year, &capital); printf("Compound interest (Y/N)?"); scanf(" %c", &ch); if(ch == 'Y' || ch == 'y') deposit = capital * pow(1 + rate, year); if(ch == 'N' || ch == 'n') deposit = capital * (1 + rate * year); printf("deposit = %.4f\n", deposit); return 0; }

    3 存款利率计算器v3.0

    #include <stdio.h> #include <math.h> int main() { double rate, capital, deposit; int year; char ch; printf("Input capital, year:"); scanf("%lf,%d", &capital, &year); printf("Compound interest (Y/N)?"); scanf(" %c", &ch); switch (year) { case 1 : rate = 0.0225; break; case 2 : rate = 0.0243; break; case 3 : rate = 0.0270; break; case 5 : rate = 0.0288; break; case 8 : rate = 0.0300; break; default : printf("Error year!\n"); return 0; } if(ch == 'Y' || ch == 'y') deposit = capital * pow(1 + rate, year); if(ch == 'N' || ch == 'n') deposit = capital * (1 + rate * year); printf("rate = %.4f, deposit = %.4f\n", rate, deposit); return 0; }

    4 博弈论之Best Response

    #include <stdio.h> #include <math.h> int main() { float A, B, compete, standard; printf("Input percent of A and B:"); scanf("%f%f", &A, &B); compete = A * 10 + B * 6; standard = A * 8 + B * 10; printf("compete = %.4f\nstandard = %.4f\n", compete, standard); if(compete > standard) printf("The Best Response is compete!"); else printf("The Best Response is standard!"); return 0; }

    1 检测用户错误输入

    #include <stdio.h> #include <math.h> int main() { int a, b, t; if(scanf("%d %d", &a, &b) == 2) printf("a = %d, b = %d\n", a, b); else printf("Input error!"); return 0; }

    2 闰年判断

    #include <stdio.h> int main() { int year; scanf("%d", &year); if (year >= 1) { if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0) printf("Yes\n"); else printf("No\n"); } else printf("Input error!\n"); return 0; }

    3 程序改错v1.0

    #include<stdio.h> int main() { int score; char grade; printf("Please input score:\n"); if ((scanf("%d", &score) != 1) || (score < 0 || score > 100)) printf("Input error!\n"); else { if (score >= 90) grade = 'A'; else if (score >= 80) grade = 'B'; else if (score >= 70) grade = 'C'; else if (score >= 60) grade = 'D'; else grade = 'E'; printf("grade: %c\n", grade); } return 0; }

    4 字符类型判断

    #include<stdio.h> int main() { char ch; printf("Input simple:\n"); scanf("%c", &ch); if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) printf("It is an English character.\n"); else if (ch >= '0' && ch <= '9') printf("It is a digit character.\n"); else printf("It is other character.\n"); return 0; }

    5 快递费用计算

    #include<stdio.h> #define EPS 1E-6 int main() { int zone, w; float weight, price = 0; scanf("%d,%f", &zone, &weight); w = weight - (int)(weight) <= EPS ? (int)(weight) : (int)(weight) + 1; // w = (int)(weight + 0.99999999); switch (zone) { case 0: price = 10 + 3 * (w - 1); break; case 1: price = 10 + 4 * (w - 1); break; case 2: price = 15 + 5 * (w - 1); break; case 3: price = 15 + 6.5 * (w - 1); break; case 4: price = 15 + 10 * (w - 1); break; default: printf("Error in Area\n"); } printf("Price: %5.2f\n", price); return 0; }

    6 数位拆分v2.0

    #include <stdio.h> int main() { int n, a, b; printf("Please input n:\n"); scanf("%d", &n); a = n / 100; b = n % 100; printf("%d,%d\n", a, b); printf("sum=%d,sub=%d,multi=%d\n", a + b, a - b, a * b); if (b != 0) printf("dev=%.2f,mod=%d\n", (float)a / b, a % b); else printf("The second operator is zero!\n"); return 0; }

    7 出租车计价

    #include <stdio.h> int main() { float distance, fee = 0; int time; printf("Input distance and time:"); scanf("%f,%d", &distance, &time); fee += 8; if (distance > 3) if (distance <= 10) fee += (distance - 3) * 2; else fee += 7 * 2 + (distance - 10) * 3; fee += time / 5 * 2; printf("fee = %.0f\n", fee); return 0; }

    8 数据区间判断

    #include <stdio.h> int main() { int n; printf("Please enter the number:\n"); scanf("%d", &n); if (n <= 0 || n >= 10000) printf("error!\n"); else if (n >= 1000) printf("%d: 1000-9999\n", n); else if (n >= 100) printf("%d: 100-999\n", n); else if (n >= 10) printf("%d: 10-99\n", n); else printf("%d: 0-9\n", n); return 0; }

    9 计算一元二次方程的根v2.0

    #include <stdio.h> #include <math.h> #define EPS 1e-6 main() { float a, b, c, disc, p, q; printf("Please enter the coefficients a,b,c:\n"); scanf("%f,%f,%f", &a, &b, &c); if (fabs(a) <= EPS) { printf("error!\n"); exit(0); } disc = b * b - 4 * a * c; if (disc < -EPS) { printf("error!\n"); } else { p = - b / (2 * a); q = sqrt(fabs(disc)) / (2 * a); printf("x1=%7.4f, x2=%7.4f\n", p + q, p - q); } return 0; }
    Processed: 0.013, SQL: 9