首页 > 编程语言 >实验二 C语言分支与循环基础应用编程

实验二 C语言分支与循环基础应用编程

时间:2024-10-09 19:50:08浏览次数:7  
标签:include int max 编程 else printf input C语言 分支

实验二 C语言分支与循环基础应用编程


实验任务1——抽学号

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 5
#define N1 397
#define N2 476
#define N3 21

int main() {
	int cnt;
	int random_major, random_no;

	srand(time(NULL)); // 以当前系统时间作为随机种子
	cnt = 0;

	while(cnt < N) {
		random_major = rand() % 2;
		if(random_major) {
			random_no = rand() % (N2 - N1 + 1) + N1;
			printf("20248329%04d\n", random_no);
		}
		else {
			random_no = rand() % N3 + 1;
			printf("20248395%04d\n", random_no);
		}
		cnt++;
	}

}

1-1 1-2 1-3


问题1

rand()生产一个随机数% (N2 - N1 + 1)将随机数限制在0N2 - N1(班级人数)之间,最后加上N1组成学号。

问题2

同上,此时班级人数为N3,加上1组成学号。

问题3

随机从两个班级中抽取学号。



实验任务2——一元二次方程

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

int main() {
	double a, b, c;
	double delta, p1, p2; // 用于保存中间计算结果

	while (scanf_s("%lf%lf%lf", &a, &b, &c) != EOF) {
		if (a == 0) {
			printf("a = 0, invalid input\n");
			continue;
		}
		delta = b * b - 4 * a * c;
		p1 = -b / 2 / a;
		p2 = sqrt(fabs(delta)) / 2 / a;
		if (delta == 0)
			printf("x1 = x2 = %.2g\n", p1);
		else if (delta > 0)
			printf("x1 = %.2g, x2 = %.2g\n", p1 + p2, p1 - p2);
		else {
			printf("x1 = %.2g + %.2gi, ", p1, p2);
			printf("x2 = %.2g - %.2gi\n", p1, p2);
		}
	}

}

2-1



实验任务3——模拟信号灯

#include <stdio.h>


int main() 
{
	char a;

	while (scanf_s("%c", &a) != EOF) {
		getchar();
		if (a == 'r') {
			printf("stop!\n");
		}
		else if (a == 'y') {
			printf("wait a minute\n");
		}
		else if (a == 'g') {
			printf("go go go\n");
		}
		else {
			printf("something must be wrong...\n");
		}
	}

}

3-1



实验任务4——记账

#include <stdio.h>

int main() {
	printf("输入今日开销:\n");

	double input, sum,  max, min;
	max = 0;
	min = 20000;
	sum = 0;

	while (1) {
		scanf_s("%lf", &input);
		getchar();

		if (input == -1) {
			break;
		}
		if (input < min) {
			min = input;
		}
		if (input > max) {
			max = input;
		}

		sum += input;
	}

	printf("今日累计消费总额:%lf\n", sum);
	printf("今日最高一笔开销:%lf\n", max);
	printf("今日最低一笔开销:%lf\n", min);

}

4-1



实验任务5——三角形形状

#include <stdio.h>

int main() 
{
	int a, b, c;
	while (scanf_s("%d%d%d", &a, &b, &c) != EOF) {
		getchar();

		if (a + b > c && b + c > a && a + c > b) {
			
			if (a == b || b == c || a == c) {
				if (a == b && b == c && a == c) {
					printf("等边三角形\n");
				}
				else if (a * a + b * b == c * c || b * b + c * c == a * a || a * a + c * c == b * b) {
					printf("等腰直角三角形\n");
				}
				else {
					printf("等腰三角形\n");
				}
			}
			else if (a * a + b * b == c * c || b * b + c * c == a * a || a * a + c * c == b * b) {
				printf("直角三角形\n");
			}
			else {
				printf("普通三角形\n");
			}
		}
		else {
			printf("不能构成三角形\n");
		}
	}
}

5-1



实验任务6——猜日期

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() 
{
	srand(time(NULL));
	int num = (rand() % 30 + 1);
	int input, min, max;

	min = 1;
	max = 30;

	printf("从1-30中猜一个数");
	for (int i = 0;i < 3;i++) {
		printf("%d~%d:", min, max);
		scanf_s("%d", &input);
		if (input == num) {
			printf("猜对了!");
			return 0;
		}
		else  if (input > num) {
			printf("大了\n");
			max = input - 1;
		}
		else {
			printf("小了\n");
			min = input + 1;
		}
	}
	printf("答案是:%d", num);
}

6-1 6-2



标签:include,int,max,编程,else,printf,input,C语言,分支
From: https://www.cnblogs.com/cuo-ren/p/18454998

相关文章

  • C#联合Visionpro编程学习记录(判断相机硬件是否掉线的方法)
    1,在实际使用过程中,Visionpro没有提供用于直接判断相机硬件是否依然在线的方法,有一个方法可以使用:1///<summary>2///使用获取相机时间戳计时器频率的方式来判断相机是否仍然在线,3///如果相机掉线获取相机TimeStampFrequency属性将报错,以此判断相机......
  • C#联合Visionpro编程学习记录(将指定颜色的十字线图形添加到CogRecordDisplay上)
    1///<summary>2///将指定颜色的十字线图形添加到CogRecordDisplay上3///</summary>4///<paramname="icogimage"></param>5///<returns></returns>6publicstaticstringAddCrossCurveRecord2CogRecordDisplay(I......
  • C语言结构体
    1.结构体的定义、初始化、打印输出#include<stdio.h>#include<string.h>structStudent{//定义结构......
  • 【蓝桥杯】“萌新首秀”全国高校新生编程排位赛3
    一、下一次生日题目下一次生日 题目分析闰年,四年一次,今年是闰年,那下一个闰年就是四年后代码#includeusingnamespacestd;intmain(){cout<<"2028";return0;}二、遗失的数字题目遗失的数字  题目分析用一个数组来记录数组A[N]出现的数字,如果......
  • C++消灭星星游戏编程【目录】
    欢迎来到zhooyu的专栏。主页:【zhooyu】专栏:【C++消灭星星游戏编程】特色:【保姆级教程,含每一课程源码】致力于用最简洁的语言,最简单的方式,最易懂的知识,带大家享受编程的快乐。消灭星星游戏编程演示效果消灭星星游戏编程演示效果本专栏内容:消灭星星的小游戏保姆......
  • 实验1 现代C++编程初体验
    任务一#include<iostream>#include<string>#include<vector>#include<algorithm>usingnamespacestd;template<typenameT>voidoutput(constT&c);voidtest1();voidtest2();voidtest3();intmain(){cout<<&qu......
  • C语言—函数递归
    目录一.递归的概念①递归的思想②递归的限制条件二.递归的一些典型例子①求n的阶乘②顺序打印一个整数的每一位③斐波那契数列三.递归与迭代一.递归的概念①递归的思想所谓递归,就是把一个大型复杂问题不断转化成一个个规模较小的子问题从而求解,直到子问题不能被......
  • Java并发编程:深入探索与实战案例
    Java并发编程:深入探索与实战案例在当今的多核处理器时代,并发编程已成为提升应用程序性能、优化资源利用的关键技术之一。Java,作为一门广泛应用的编程语言,凭借其强大的并发处理能力,在众多编程语言中脱颖而出。本文将深入探讨Java并发编程的核心概念、常用工具及实战案例,旨在......
  • 【javascript 编程】Web前端之JavaScript动态添加类名的两种方法、区别、className、c
    通过className来添加或删除类名添加类名获取元素el.className="类名1类名2...";多个类名用空格隔开。移除类名获取元素名el.className="";直接等于一个空字符串即可删除类名。通过classList来添加或删除类名添加一个类名获取元素名el.classList.add("类名");。......
  • 一文通Java 锁:锁机制及锁常见问题的深入解析(Java 并发编程(偏向、轻/重量级、读写、可
    在并发编程中,锁机制是保障线程安全的核心工具。锁的类型、使用场景、以及锁引发的种种问题都是开发者在设计高并发系统时必须应对的挑战。本篇博客将围绕锁的类型、应用场景、以及常见的锁问题展开详细讨论,帮助大家深入理解Java锁机制的优缺点与其适用场景。文章目录......