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

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

时间:2024-10-09 20:23:02浏览次数:7  
标签:random C语言 int 编程 else while printf include 分支

一、实验目的

1. 能正确使用if语句实现分支结构

2. 能正确使用while语句、do...while语句实现循环结构

3. 能在具体问题场景中正确区分、使用continue和break

4. 能灵活、组合使用c语句编程解决简单应用问题 

二、实验准备

1. 分支语句 if 和循环语句 while 、 do...while 的用法:语法规则及注意事项

2. 在循环语句中 continue 和 break 语句的功能和用法

3. 使用 while 语句实现多组输入的方法

4. 常见问题的算法 

三、实验内容

1. 实验任务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 
11 int main(){
12     int cnt;
13     int random_major,random_no;
14     
15     srand(time(NULL));
16     
17     cnt=0;
18     while (cnt < N){
19         random_major =rand() %2;
20         if (random_major){
21             
22             if (random_major){
23                 random_no = rand()%(N2 - N1+1)+N1;
24                 printf("20248329%04d\n",random_no);
25                 
26             }
27             else{
28                 random_no = rand() % N3 +1;
29                 printf("20248395%04d\n",random_no);
30                 
31             
32             }
33             cnt++;
34         }
35         
36         return 0;
37     
38 }
39 }

 

 

运行截图:

 

问题回答:

random_no = rand()%(N2 - N1+1)+N1;用来生成一个在397到496之间的随机数,包括边界

random_no = rand() % N3 +1;用来生成一个1到21之间的随机数,包括边界

这个程序是用来生成两种不同的学号。但是都是限定了格式,有12位一共。

 

 

2. 实验任务2

代码:

 

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

 

运行截图:

 

 

 

 

3. 实验任务3

代码:

 

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

 

 

运行截图:

 

 

 

 

 

4. 实验任务4

代码:

 

 1 #include<stdio.h>
 2 int main(){
 3     printf("请输入今日开销,直到输入-1终止:\n"); 
 4     double kaixiao,max=0.0,min=20000.0,sum=0.0;
 5 
 6     while(1){
 7         scanf("%lf",&kaixiao);
 8         if (kaixiao==-1){
 9             break;
10         }
11         
12         
13         if (!(kaixiao>=0 && kaixiao<=20000))
14         {
15             printf("请重新输入在0到2万之间的数\n");
16         }
17         
18         if (kaixiao>max){
19             max = kaixiao;
20         }
21         
22         if (kaixiao<min){
23             min = kaixiao;
24         }
25         
26         sum+= kaixiao;
27         
28     }
29     printf("今日累计消费总额:%.2f\n",sum);
30     printf("今日最高一笔开销:%.2f\n",max);
31     printf("今日最低一笔开销:%.2f\n",min);
32         return 0;
33     }
34     

 

 

运行截图:

 

 

 

 

 

5. 实验任务5

代码:

 

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

 

 

运行截图:

 

 

 

 

 

6. 实验任务6

代码:

 

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<time.h> 
 4 #define x1 1
 5 #define x2 30
 6 int main(){
 7     
 8     int y,m=1;
 9     
10     srand(time(NULL)); 
11     
12     
13     int x=rand()% (x2-x1+1)+x1;
14     
15     
16     printf("猜猜2024年11月哪一天会是你的lucky day\n\n开始喽,你有三次机会,猜吧(1~30):")    ;
17      
18     while(1){
19     scanf("%d",&y);
20     
21     if (m==3){
22         
23             printf("\n次数用光啦。偷偷告诉你,11月你的lucky day是 %d 号",x);
24             break;
25     }
26     
27     
28     if (y==x )
29     {printf("\n哇,猜中了:)");
30     break;}
31     
32     else if (y<x )
33     
34     {printf("\n你猜的日期早了,你的lucky day还没到呢\n\n再猜(1~30):");}
35         
36     else if (y>x )
37     
38     {printf("\n你猜的日期晚了,你的lucky day在前面哦\n\n再猜(1~30):");    }
39     
40     
41     m++;
42     } 
43 
44     return 0;
45 }
46     

 

 

运行截图:

 

 

 

 

 

 

 

四、实验总结

1. 实验任务1

 #include<stdlib.h>和#include<time.h>是随机数生成的重要部分。而srand(time(NULL));达到了运行一次生成一次随机数的效果。

 

2. 实验任务2

 if 分支结构的使用。if --else if ---else if ----.....---else

以及continue跳出当前循环的作用,

以及格式控制符%g

 

3. 实验任务3

 输出一个结果,习惯性地在末尾加上\n来换行。

还有字符的判断用单引号' ' 

判断相等,用的是==,判断b<c<a用  b<c && c<a

和EOF的使用。

 

4. 实验任务4

 

输入-1终止程序,我用了while里一个if 语句判断,内部用上了break达到了终止程序的效果。

引入了max,min,sum,判断与kaixiao之间的关系来得到值。

 

 

5. 实验任务5

 格式化输入时%d%d%d和%d  %d  %d 的不同之处

6. 实验任务6

 随机生成数的又一次练习。和一次猜中的终止程序。以及3次都没猜中的谜底揭示。

 

标签:random,C语言,int,编程,else,while,printf,include,分支
From: https://www.cnblogs.com/andongni51/p/18452554

相关文章

  • 实验1 现代C++编程初体验
    task1:1//现代C++标准库、算法库体验2//本例用到以下内容:3//1.字符串string,动态数组容器类vector、迭代器4//2.算法库:反转元素次序、旋转元素5//3.函数模板、const引用作为形参67#include<iostream>8#include<string>9#includ......
  • 实验1 现代C++编程初体验
    任务一源代码1#include<iostream>2#include<string>3#include<vector>4#include<algorithm>56usingnamespacestd;78template<typenameT>9voidoutput(constT&c);1011voidtest1();12voidtest2();13v......
  • 实验1 现代C++编程初体验
    1.实验任务11#include<iostream>2#include<string>3#include<vector>4#include<algorithm>56usingnamespacestd;78//声明9//模板函数声明10template<typenameT>11voidoutput(constT&c);1213//普通函数声明......
  • 实验二 C语言分支与循环基础应用编程
    实验二C语言分支与循环基础应用编程实验任务1——抽学号#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5#defineN1397#defineN2476#defineN321intmain(){ intcnt; intrandom_major,random_no; srand(time(NULL));//以当前系统......
  • 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......