12
0
0

RW编程(第三章)

2026-10-23
2026-10-27
RW编程(第三章)
文章摘要
|

问题 A: 直角三角形否

#include <stdio.h>
#include <math.h>

int fucA(double numA , double numB , double numC) {
	numA = numA * 1E8;
	numB = numB * 1E8;
	numC = numC * 1E8;

	unsigned long lumA = (unsigned long)numA;
	unsigned long lumB = (unsigned long)numB;
	unsigned long lumC = (unsigned long)numC;

	return (lumA * lumA + lumB * lumB) == lumC * lumC;
}

int main() {
	double var1, var2, var3;

	scanf("%lf%lf%lf",&var1,&var2,&var3);
	if (fucA(var1, var2, var3)) {
		printf("(%G, %G, %G) 是直角三角形。",var1,var2,var3);
	}
	else printf("(%G, %G, %G) 不是直角三角形。",var1, var2, var3);


	return 0;
}

问题 D: 再算三角形面积

#include <stdio.h>
#include <math.h>

int fucA(double numA, double numB, double numC) {
	numA = numA * 1E5;
	numB = numB * 1E5;
	numC = numC * 1E5;

	unsigned long lumA = (unsigned long)numA;
	unsigned long lumB = (unsigned long)numB;
	unsigned long lumC = (unsigned long)numC;

	return lumA + lumB > lumC;
}

int main() {
	double var1, var2, var3;
	scanf("%lf%lf%lf",&var1,&var2,&var3);
	if (fucA(var1, var2, var3) &&
		fucA(var1, var3, var2) &&
		fucA(var2, var3, var1)
		)
	{//海伦公式
		double tmpN = (var1 + var2 + var3) / 2.0;
		printf("三角形面积 = %.8lf", sqrt(tmpN * (tmpN - var1) * (tmpN - var2) * (tmpN - var3)));
	}
	else printf("不是三角形。");

	return 0;
}

问题 E: 再算一元二次方程

#include <stdio.h>
#include <math.h>

double calDerta(double numA, double numB, double numC) {
	return numB * numB - 4.0 * numA * numC;
}

void repPoint(double* varA, double* varB) {
	 
	if (*varA > *varB) {
		double tmpS = *varA;
		*varA = *varB;
		*varB = tmpS;
	}

}

int main() {
	double var1, var2, var3;
	scanf("%lf%lf%lf", &var1, &var2, &var3);

	double dertaVar = calDerta(var1, var2, var3);
	if (dertaVar >= 0)
	{
		var2 = -var2;
		double resX1 = (var2 + sqrt(dertaVar)) / (2.0 * var1);
		double resX2 = (var2 - sqrt(dertaVar)) / (2.0 * var1);
		repPoint(&resX1,&resX2);

		printf("x1 = %.4lf\nx2 = %.4lf", resX1, resX2);
	}
	else printf("方程没有实根。");

	return 0;
}

问题 F: 两人队列排队

#include<stdio.h>

int main()
{
	double a, b;
	double t;
	scanf("%lf%lf", &a, &b);
	if (a > b) {
		t = a;
		a = b;
		b = t;
	}
	printf("%G %G",a,b);
	return 0;
}

问题 G: 三人队列排队

#include<stdio.h>

int main()
{
	double a, b, c;
	double t;
	scanf("%lf%lf%lf", &a, &b, &c);

	if (a > b) {
		t = a;
		a = b;
		b = t;
	}
	if (b > c) {
		t = b;
		b = c;
		c = t;
	}
	if (a > c) {
		t = c;
		c = a;
		a = t;
	}
	if (a > b) {
		t = a;
		a = b;
		b = t;
	}
	printf("%G %G %G", a, b, c);
		return 0;
}

问题 H: 四人队列排队

#include<stdio.h>

int main()
{
	double a, b, c, d;
	double t;
	scanf_s("%lf%lf%lf%lf", &a, &b, &c, &d);
	
	double tmpSortArray[4] = { a,b,c,d };
	for (int var = 0; var < 4; ++var) {
		for (int var2 = 0; var2 < 4 - var - 1; ++var2) {
			if (tmpSortArray[var2] > tmpSortArray[var2 + 1]) {
				t = tmpSortArray[var2];
				tmpSortArray[var2] = tmpSortArray[var2 + 1];
				tmpSortArray[var2 + 1] = t;
			}
		}
	}

	for (int i = 0; i < 4; i++)
	{
		printf("%G", tmpSortArray[i]);
		if (i < 3) {
			printf(" ");
		}
	}

	return 0;
}

问题 I: 成绩的等级划分之 if 实现

#include<stdio.h>

int main()
{
	long score;
	char mark = 'A';

	scanf_s("%ld", &score);

	if (score < 60)
		mark = 'E';
	if (score <= 69 && score >= 60)
		mark = 'D';
	if (score <= 79 && score >= 70)
		mark = 'C';
	if (score <= 89 && score >= 80)
		mark = 'B';
	


		printf("%c\n", mark);
	return 0;
}

问题 J: 成绩的等级划分之 switch 实现

#include<stdio.h>

int main()
{
	long score;
	char mark = 'A';

	scanf("%ld", &score);

	switch(score/10){
		case 10:
		case 9: break;

		case 8: mark = 'B'; break;
		case 7: mark = 'C'; break;
		case 6: mark = 'D'; break;
		default:mark = 'E'; break;
	}

		printf("%c\n", mark);
	return 0;
}

问题 K: 星期的表示

#include <stdio.h>
#include <malloc.h>

int main() {

	int wk = 0;

	scanf("%d",&wk);
	switch (wk%7) {
		case 0:printf("星期天,休息日。"); break;
		case 1:printf("星期一,工作日。"); break;
		case 2:printf("星期二,工作日。"); break;
		case 3:printf("星期三,工作日。"); break;
		case 4:printf("星期四,工作日。"); break;
		case 5:printf("星期五,工作日。"); break;
		case 6:printf("星期六,休息日。"); break;
	}

	return 0;
}

问题 B: 数字的爱情观之自恋1

#include <stdio.h>

int main() {

	int num = 0,tmp = 0,numA[3],count = 0;
	scanf("%d",&num);
	tmp = num;
	for (int i = 0; i < 3; i++) {
		numA[i] = tmp % 10;
		tmp /= 10;
		count += numA[i] * numA[i] *numA[i];
	}

	if (count == num)
		printf("%d 很自恋。",num);
	else printf("%d 不自恋。",num);
}

问题 C: 数字的爱情观之自恋2

#include <stdio.h>

int calFc(int num,int n) {
	int tmp = 1;
	for (int i = 0; i < n; i++) {
		tmp *= num;
	}

	return tmp;
}

int main() {

	int num = 0,tmp = 0,numA[9],count = 0,l = 0;
	scanf("%d",&num);
	tmp = num;
	for (;tmp;++l) {
		numA[l] = tmp % 10;
		tmp /= 10;
	}

	for (int i = 0;i < l; i++) {
		count += calFc(numA[i],l);
	}

	if (count == num)
		printf("%d 很自恋。",num);
	else printf("%d 不自恋。",num);
}

问题 M: 简单的计算器

#include <stdio.h>

int main() {
	double numA,numB; char cals;
	double res = 0;
	scanf("%lf", &numA);
	getchar();
	scanf("%c", &cals);
	getchar();
	scanf("%lf", &numB);


	switch (cals) {
	case '+':
		res = numA + numB; break;
	case '-':
		res = numA - numB; break;
	case '*':
		res = numA * numB; break;
	case '/':
		res = numA / numB; break;
	case 37: {
		int a, b;
		a = numA;
		b = numB;
		res = a % b; break;
	}
		
	}

	printf("%lG %c %lG = %lG",numA,cals,numB,res);
	return 0;
}

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

RW编程(第三章)
/archives/rwbian-cheng-di-san-zhang
作者
Administrator
发布于
2026-10-23
许可协议
CC BY-NC-SA 4.0

评论

欢迎来到我的博客!