基本习题练习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28837389/article/details/83031122
// 包含标准的C语言的头文件;
// 编写C语言的时候这三个,就能解决大部分C库包含的问题;
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

// [第一题]
// 求区间[start, end]的整数和,并返回回来
// start, end用户传进来的参数,我们根据用户的给定的参数,
// 求得对应的结果
// 循环遍历start, end的整数,求得所有的整数的和;
// 注意地方注意一下start < end
int sum_zone(int start, int end) {
	// 用户传递的start > end, 交换start, end
	if (start > end) { // 交换数据的时候需要第三个变量来参与
		int temp = start;
		start = end;
		end = temp;
	}

	int total = 0; // 这个变量用来存放最后的结果

	for (int i = start; i <= end; i++) {
		// total = total + i;
		total += i;
	}
	return total;
}

// [第二题]:
// 给一个整数,求得这个整数的绝对值
int math_abs(int value) {
	/*if (value < 0) {
		return -value;
	}
	return value;*/
	// 简写的方式
	// 括号里面条件为真,折去取冒号左边的表达式,否则的话就取冒号右边的表达式;
	value = (value < 0) ? -value : value;
	return value;
	// end 
}

// 第三题:
// 给定一个输入的分数,[0, 100]分,返回这个分数所对应的等级
// 1: 不及格, 2: 及格, 3: 良好, 4表示优秀, 5表示满分, -1表示输入不满足条件
int level_from_score(int score) {
	if (score < 0 || score > 100) {
		return -1;
	}
	if (score == 100) { // 满分
		return 5;
	}
	else if (score >= 80) { // 优秀
		return 4;
	}
	else if (score >= 70) { // 良好
		return 3;
	}
	else if (score >= 60) { // 及格
		return 2;
	}
	else { // 不及格
		return 1;
	}
}

//  第四题
// float 表示单精度小数数据;
// 常数float 0.0f,要加f, 0.0 双精度的double
float circle_perimeter(float r) {
	if (r <= 0.0f) {
		return 0.0f;
	}

	float perimeter = 3.1415926f * r * 2;
	return perimeter;
}
//  第五题
// float 表示单精度小数数据;
// 常数float 0.0f,要加f, 0.0 双精度的double
double circle_area(double r) {
	if (r <= 0.0) { // 不带f表示这个小数常熟是双精度的double
		return 0.0;
	}

	double s = 3.1415926 * r * r;
	return s;
}
//第六题
// r为半径, degree为度, [0, 360]
double sector_perimeter(double r, double degree) {
	double perimeter = 3.1415926 * r * 2;
	// degree, [0, 360]
	while (degree > 360) {
		degree -= 360;
	}
	while (degree < 0) {
		degree += 360;
	}
	double per = degree / 360.0;
	return (perimeter * per + r + r);
}

// end 
int main(int argc, char** argv) {
	// 定义了一个和返回值同类型的变量,保存这个函数的返回值
	int value = sum_zone(1, 10);
	printf("sum = %d\n", value);

	value = sum_zone(10, 1);
	printf("sum = %d\n", value);

	value = math_abs(-7);
	printf("-7 abs = %d\n", value);

	value = math_abs(7);
	printf("7 abs = %d\n", value);


	int score = 159;
	int level = level_from_score(score);
	switch (level) {
		case 5:
			printf("满分!\n");
		break;
		case 4:
			printf("优秀!\n");
		break;
		case 3:
			printf("良好!\n");
		break;
		case 2:
			printf("及格!\n");
		break;
		case 1:
			printf("不及格!\n");
		break;
		case -1:
			printf("参数错误!\n");
		break;
	}

	float len = circle_perimeter(2);
	printf("len = %f\n", len);

	double s = circle_area(2);
	printf("s = %lf\n", s); // long float

	s = sector_perimeter(2, 90);
	printf("s = %lf\n", s); // long float


	// 当代码执行到这里的时候,他会等待我们的用户输入一个按键
	// 以后才会推出
	system("pause");
	return 0;
}


猜你喜欢

转载自blog.csdn.net/qq_28837389/article/details/83031122