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;
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;
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-45951.html