首页 > 其他分享 >实验2

实验2

时间:2024-10-10 23:23:19浏览次数:7  
标签:%. int random else 实验 printf include

 

实验任务1:

源代码:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 
 5 #define N 5
 6 #define N1 397
 7 #define N2 476
 8 #define N3 21
 9 //随机抽取学生的学号
10 int main() {
11     int cnt;
12     int random_major, random_no;
13 
14     srand(time(NULL));      // 以当前系统时间作为随机种子
15 
16     cnt = 0;
17     while(cnt < N) {
18         random_major = rand() % 2;
19 
20         if(random_major) {
21             random_no = rand() % (N2 - N1 + 1) + N1;//随机抽取计算机类学生学号末位为397~476的学号
22             printf("20248329%04d\n", random_no);
23         }
24         else {
25             random_no = rand() % N3 + 1;// 随机抽取奇安信班学生的学号
26             printf("20248395%04d\n", random_no);
27         }
28 
29         cnt++;
30     }
31     
32 
33     return 0;
34 }

运行结果:

 

 

问题1:随机抽取计算机类学生学号末位为397~476的学号

问题2:随机抽取奇安信班学生的学号

问题3:随机抽取学生的学号

实验任务2:

源代码:

 1 // 一元二次方程求解
 2 
 3 #include <stdio.h>
 4 #include <math.h>
 5 
 6 int main() {
 7     double a, b, c;
 8     double delta, p1, p2; // 用于保存中间计算结果
 9 
10     while(scanf("%lf%lf%lf", &a, &b, &c) != EOF) {
11         if(a == 0) {
12             printf("a = 0, invalid input\n");
13             continue;
14         }
15 
16         delta = b*b - 4*a*c;
17         p1 = -b/2/a;
18         p2 = sqrt(fabs(delta))/2/a;
19 
20         if(delta == 0)
21             printf("x1 = x2 = %.2g\n", p1);
22         else if(delta > 0)
23             printf("x1 = %.2g, x2 = %.2g\n", p1+p2, p1-p2);
24         else {
25             printf("x1 = %.2g + %.2gi, ", p1, p2);
26             printf("x2 = %.2g - %.2gi\n", p1, p2);
27         }
28     }
29 
30     return 0;
31 }

运行结果:

实验任务3:

源代码:

 1 #include<stdio.h>
 2 int main() 
 3 {
 4 char x='\0';
 5 while(scanf("%ch",&x)!=EOF)
 6 {   
 7     if(x=='r')
 8     {
 9         printf("stop!\n");
10         getchar();
11     }
12     else if(x=='g')
13     {
14      printf("go go go\n");
15      getchar();
16 }
17     else if(x=='y')
18     {
19      printf("wait a minute\n");
20      getchar();
21 }
22 else
23 {
24 printf("something must be wrong\n");
25 getchar();
26 }
27 }
28 return 0;
29 }

运行结果:

实验任务4:

源代码:

 1 #include<stdio.h>
 2 int main()
 3 {double t,min1,max1,sum1;
 4 sum1=0;
 5 min1=20000;
 6 max1=0;
 7 printf("输入今日开销,直到输入-1终止:\n");
 8 while(scanf("%lf",&t)!=EOF)
 9 {
10     if(t<0)
11     {
12     break;
13     }
14     if(t<min1)
15     {
16     min1=t;
17     }
18     if(t>max1)
19     {
20     max1=t;
21     }
22     sum1+=t;
23     }
24 printf("今日累计消费总额:%.1lf\n",sum1);
25 printf("今日最高一笔开销:%.1lf\n",max1);
26 printf("今日最低一笔开销:%.1lf\n",min1);
27 return 0;
28 }

运行结果:

实验任务5:

源代码:

 1 #include<stdio.h>
 2 int main()
 3 {int a,b,c;
 4 while(scanf("%d%d%d",&a,&b,&c)!=EOF)
 5 {
 6 if(a+b>c&&a+c>b&&b+c>a) 
 7 {
 8 if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
 9 {
10     printf("直角三角形\n");
11 }
12 else if(a==b&&b==c)
13 {
14     printf("等边三角形\n");
15 }
16 else if(a==b||a==c||b==c) 
17 {
18     printf("等腰三角形\n");
19 }
20 else
21 {
22     printf("普通三角形\n");
23 }
24 }
25 else
26 {
27     printf("不能构成三角形\n");
28 }
29 }
30 return 0;
31 }

运行结果:

实验任务6:

 1 int main() {
 2     srand(time(NULL));
 3     int luckyDay = rand() % 30 + 1;
 4     int m;
 5     
 6 
 7     printf("猜猜2024年11月哪一天会是你的luckyday\n开始喽,你有三次机会,猜吧(1~30):");
 8     for(int i = 0;i<3;i+=1)
 9     {scanf("%d",&m);
10     
11     if(m==luckyDay)
12     {
13         printf("哇,猜中了\n"); 
14         return 0;
15     }
16     else if(m<luckyDay)
17     {
18         printf("你猜的日期早了,你的luckyDay还没到呢\n")    ;
19     }
20     else
21     {
22         printf("你猜的日期晚了,你的luckyDay在前面哦\n")    ;
23     }
24     if(i<2)
25     {
26         printf("再猜(1~30):"); 
27     }}
28        printf("次数用光了,偷偷告诉你,你的11月luckyDay是%d\n",luckyDay);
29    
30     return 0;
31 }

 

运行结果:

实验总结:

学会设随机种子以及srand()的用法

学会循环的使用

复习巩固了基础语法

 

标签:%.,int,random,else,实验,printf,include
From: https://www.cnblogs.com/noeleven/p/18455141

相关文章

  • 实验2
    任务1 #include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5#defineN1397#defineN2476#defineN321intmain(){intcnt;intrandom_major,random_no;srand(time(NULL));cnt=0;while(cn......
  • 实验1 现代c++编程初体验
    实验1:1//现代C++标准库、算法库体验2//本例用到以下内容:3//1.字符串string,动态数组容器类vector、迭代器4//2.算法库:反转元素次序、旋转元素5//3.函数模板、const引用作为形参67#include<iostream>8#include<string>9#include......
  • 20222403 2024-2025-1 《网络与系统攻防技术》实验一实验报告
    1.实验内容本周学习内容1.熟悉基本的汇编语言指令及其功能。2.掌握了栈与堆的概念及其在进程内存管理中的应用以及用户态与内核态的区别。3.熟练运用了Linux系统下的基本操作命令。2.实验过程任务一直接修改程序机器指令,改变程序执行流程下载并解压目标文件pwn1,然后拖入虚......
  • 实验2
    试验任务1#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5#defineN1397#defineN2476#defineN321intmain(){intcnt;intrandom_major,random_no;srand(time(NULL));cnt=0;while(cnt&l......
  • 实验1 现代C++编程初体验
    1.实验任务1task1源代码:1#include<iostream>2#include<string>3#include<vector>4#include<algorithm>56usingnamespacestd;78//声明9//模板函数声明10template<typenameT>//*****表明这是一个模板参数,可以接受任意类型的参数......
  • 20222428 2024-2025-1 《网络与系统攻防技术》实验一实验报告
    1.实验内容1.1本周学习内容1.1.1安全漏洞简介定义:系统的缺陷或不足。作用:网络攻击和防御的关键点。网络攻击:利用系统漏洞进行攻击。防御:提前发现漏洞并修复。exploit:完整的代码攻击。shellcode:不完整的代码攻击。PoC:验证是否存在漏洞。1.1.2缓冲区溢出的定义和原因......
  • 实验1
    实验任务1:task1.cpp:1//现代C++标准库、算法库体验2//本例用到以下内容:3//1.字符串string,动态数组容器类vector、迭代器4//2.算法库:反转元素次序、旋转元素5//3.函数模板、const引用作为形参67#include<iostream>8#include<string>......
  • 20222304 2024-2025-1 《网络与系统攻防技术》实验一实验报告
    1.实验内容1.1本周学习内容1)反汇编反汇编是指将计算机程序的机器代码转换回其相应的汇编代码的过程。在计算机编程和逆向工程领域中,反汇编是一种常见的技术,用于理解和分析二进制程序的功能和内部结构。通常情况下,程序员编写的源代码会被编译器转换成机器码,这是计算机可以直接......
  • 20222321 2024-2025-1 《网络与系统攻防技术》实验一实验报告
    一.实验内容1实验目标本次实践的对象是一个名为pwn1的linux可执行文件。该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。该程序同时包含另一个代码片段,getShell,会返回一个可用Shell。正常情况下这个代码是不会被运行的。我们实践的目标就是想......
  • 实验1
    #include<algorithm>//#include<typeinfo>//#include<iomanip>//#include<map>#include<vector>#include<string>#include<iostream>usingnamespacestd;usingstd::string;//模板函数声明template<typenameT&g......