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

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

时间:2023-10-20 16:35:53浏览次数:29  
标签:11 源代码 int 编程 C语言 printf include day 分支

摘要

一、实验目的

二、实验准备

三、实验内容

四、实验结论

 task1

源代码:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 #define N 5
 5 #define N1 374
 6 #define N2 465
 7 
 8 int main()
 9 {
10 int number;
11 int i;
12 srand( time(0) ); // 以当前系统时间作为随机种子
13 for(i = 0; i < N; ++i) {
14 number = rand()%(N2 - N1 + 1) + N1;
15 printf("202383290376%04d\n", number);
16 }
17 
18 system("pause");
19 return 0;
20 }

结果:

问题1:确保number在374~465之间

问题2:随机取数number,实现学号随机抽取

 

task2

 源代码:

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

结果:

 

task3

源代码:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 
 5 int main()
 6 { int day,d,i;
 7     srand(time(0));    
 8     day = rand()%30 + 1;
 9 
10     printf("猜猜2023年11月哪一天会是你的lucky day\n");
11     printf("开始喽,你有三次机会,猜吧(1~30):");
12     scanf("%d",&d);
13 
14     for(i = 1; i < 3; i++){
15 
16     if(d == day){
17         printf("哇,猜中了:-)\n");
18         system("pause");
19         return 1;
20     }
21     else if(d < day)
22         printf("你猜的日期早了,你的lucky day还没到呢\n");
23     else printf("你猜的日期晚了,你的lucky day已经过啦\n");
24 
25     printf("再猜(1~30):");
26     scanf("%d",&d);
27     }
28 
29     printf("次数用完啦。偷偷告诉你:11月,你的lucky day是%d\n",day);
30 
31     system("pause");
32     return 0;
33 }

结果:

为测试猜中后执行语句,补充结果:

 

task4

源代码:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <math.h>
 4 
 5 int main()
 6 {    int n,a,i;
 7     double s;
 8     
 9     while(scanf("%d%d",&n,&a) != EOF){
10         k = s = 0;
11         for(i = 1; i <= n; i++){
12             k = 10*k +1;
13             s += 1.0*i/a/k;
14         }
15         printf("n = %d, a = %d, s = %lf",n,a,s);
16     }
17     
18     system("pause");
19     return 0;
20 }

结果:

 

task5

源代码:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 4 
 5 int main()
 6 {    int i,j,ans;
 7     for(i = 1; i <= 9; i++){
 8         for(j = 1; j <= i; j++){
 9             ans = i*j;
10             printf("%dx%d = %2d  ",j,i,ans);
11         }
12     printf("\n");
13     }
14     system("pause");
15     return 0;
16 }

结果:

 

task6

源代码:

 

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int main()
 5 {    int n;
 6     int i,j,k;
 7 
 8     scanf("%d",&n);
 9 
10     for(i = 1; i <= n; i++){
11         for(j = 1; j < i ; j++)
12             printf("\t");
13         for(k = 1; k <= 2*(n + 1) - 1 - 2*i; k++)
14             printf(" O \t");
15         printf("\n");
16 
17         for(j = 1; j < i ; j++)
18             printf("\t");
19         for(k = 1; k <= 2*(n + 1) - 1 - 2*i; k++)
20             printf("<H>\t");
21         printf("\n");
22 
23         for(j = 1; j < i ; j++)
24             printf("\t");
25         for(k = 1; k <= 2*(n + 1) - 1 - 2*i; k++)
26             printf("I I\t");
27         printf("\n");
28     }
29 
30     system("pause");
31     return 0;
32 }

结果:

 

 

五、实验总结

1.新认识了一个报错语句:Run-Time Check Failure #3 - The variable 's' is being used without being initialized.

原因是s没有初始化赋值

2.在task4中总是第一次结果运行为正确,原因在于s和k在一遍循环过后初始值并不等于0,而是以上一次的计算结果为初始值

需要把每次重新赋值为0也加入循环之中

3.在小人题中再次体会到了编程中拆分的奇妙之处,小人的头,身体,腿,是分开来打印的,空格的输出也类推为分行打印。即先打空格(不换行)然后打出头,再打空格,然后不换行打身体......amazing!!!

一开始时完全被图形的思维迷惑住了,一直在思考如何”哐“地空出一整个小人的位置,然后复制粘贴xN,emmmmm......然后就是根本不可能绕开”换行“的操作,一败涂地。

(#希望能警记这次经验&教训)

标签:11,源代码,int,编程,C语言,printf,include,day,分支
From: https://www.cnblogs.com/forgiver/p/17767571.html

相关文章

  • 【从零学习python 】02. 开发工具介绍及交互式编程及注释详解
    编写Python代码根据我们之前介绍的知识,我们知道,所谓代码其实就是将一段普通文本按照一定的规范编写,然后交给电脑解析并且执行。那既然是一段文本,那我们是否可以直接使用文本编辑器来编码呢?答案是肯定的,但是这样开发起来,效率会很低。一、常见的代码编辑工具实际上,在我们实际工作......
  • 【从零学习python 】03. Python编程基础:变量、数据类型与标识符
    变量以及数据类型一、变量的定义对于重复使用,并且经常需要修改的数据,可以定义为变量,来提高编程效率。定义变量的语法为:变量名=变量值。(这里的=作用是赋值。)定义变量后可以使用变量名来访问变量值。如下示例:#不使用变量打印三次"今天天气真好",如果需要变成打印"......
  • c语言指针
    源程序:#include<stdio.h>#include<iostream>#include<stdlib.h>usingnamespacestd;intmain(){ char*p; chara[80]; p=a; inti=0; while((*p=getchar())!='\n') { p++; i++; } a[i]='\0'; for(p=a;*p!='\0......
  • 【C语言基础】sizeof(数组名)
    C语言数组名容易在以下两种情况混淆。情况1:数组名——代表数组整体inta[]={1,2,3,4};printf("%d\n",sizeof(a));//数组名a表示整个数组的大小,元素类型int,有4个元素,所以大小为4×4=16 情况2:数组名——代表一个指针当数组名作为函数参数时,自动退化为一个指针。此......
  • 【C语言基础】指向字符串的指针 & 字符串常量指针的关系
    问:指向字符串的指针与字符串常量指针有什么区别?答:经过实践指向字符串的指针就是字符串常量指针。字符串常量指针是常量指针的一种。常量指针的特点就是不能通过该指针来修改指向内存地址空间存储的值。 问:来看一下常见面试题char*p=“abcd”;*p=‘b’;printf("......
  • 多线程编程同步:Posix信号量
    信号量的定义IPC是进程间通信(interprocesscommunication)的简称。狭义上,IPC主要用于进程间;广义上,IPC可用于进程间或线程间。Posix消息队列、Posix信号量和Posix共享内存区合称为“PosixIPC”.信号量(semaphore)是一种用于提供不同进程间或一个给定进程的不同线程间同步手段。......
  • 实验2 C语言分支与循环基础应用编程
    实验任务1task1.c源代码:1#include<stdio.h>2#include<stdlib.h>3#include<time.h>45#defineN56#defineN13747#defineN246589intmain()10{11intnumber;12inti;1314srand(time(0));151......
  • 丈母娘说:有编制的不如搞编程的
    10月17日百度世界大会召开,据说文心大模型又牛X了,综合水平相比GPT4毫不逊色,真是个让人激动的消息,国产大模型的进展可以说是日新月异,我这耳朵边一直响彻四个字:遥遥领先。不过今天我关注的重点不是什么大模型,而是发布会上的一件趣事:相亲。这大模型和相亲有什么关系呢?给大家说关系......
  • 实验2 c语言分支与循环基础应用编程
    实验1实验1的源代码1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#defineN55#defineN13746#defineN24657intmain(){8intnumber;9inti;1011srand(time(0));//以当前系统时间作为随机种子1213for(i=0;i<N;++i......
  • [学习编程]pythontip习题心得
    题目最小缺失数编写一个Python程序,找出列表中最小的缺失整数(理想情况下为连续数字)。输入的列表保证只有一个缺失数字,而且列表中的数字都是正整数,列表中的数字不会重复,且最小数字为起始数字。比如是[2,3,4]的话,缺失值是5,而不是1,而[2,4]缺失数字为3。#用你的代码替换___......