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

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

时间:2024-10-10 16:48:53浏览次数:1  
标签:%. int 编程 C语言 random else printf include 分支

task1

#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;//随机取计算机类学号末三位397~476中的学号 
            printf("20248329%04d\n", random_no);
        }
        else {
            random_no = rand() % N3 + 1;//随机取奇安信班的学号 
            printf("20248395%04d\n", random_no);
        }

        cnt++;
    }

    return 0;
}

问题回答见注释()

task2

// 一元二次方程求解

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

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

    while(scanf("%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);
        }
    }

    return 0;
}

task3

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

int main() {
char x='\0';
    while(scanf("%ch", &x) != EOF) 
    {
        if(x=='r') 
        {
            printf("stop!\n");
            getchar();            
        }
        else if(x=='g') 
        {
            printf("go go go\n");
            getchar();
        }
        else if(x=='y') 
        {
            printf("wait a minute\n");
            getchar();
        }
        else
        {
            printf("something must be wrong...\n");
            getchar();
        }

    }

    return 0;
}

task4

#include <stdio.h>
int main()
{double max1, min1, sum1;
               sum1 = 0, max1 = 0, min1 = 20000;
    double T;
    printf("输入今日开销,直到输入-1终止:\n");
    while(scanf("%.1lf",&T)!=EOF&&T>-1)
    {
      
                
            
                    sum1 += T;
                    if (T > max1)
                    {
                        max1 = T;
                    }
                    if (T < min1)
                    {
                        min1 = T;
                    }

    }
    printf("今日累计消费总额:%.1lf\n今日最高一笔开销:%.1lf\n今日最低一笔开销:%.1lf\n",   sum1,max1, min1);
    return 0;
}

task5

#include <stdio.h>

int main() {
    int a, b, c;
    while (scanf("%d%d%d", &a, &b, &c)!= EOF) {
        if (a + b > c && a + c > b && b + c > a) {
            if (a == b && b == c) 
            {
                printf("等边三角形\n");
            } 
            else if (a == b || a == c || b == c) 
            {
                if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a)
                 {
                    printf("等腰直角三角形\n");
                } else {
                    printf("等腰三角形\n");
                }
            } else if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a) 
            {
                printf("直角三角形\n");
            } else {
                printf("普通三角形\n");
            }
        } else {
            printf("不能构成三角形\n");
        }
    }
    return 0;
}

task6

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

int main() {
    srand(time(NULL));
    int lucky_day = rand() % 30 + 1;
    int guess;
    printf("猜猜2024年11月那一天回事你的lucky day\n开始喽,你有三次机会,猜吧(1~30):");
    for(int i=0;i<3;i++)
    {
    
        scanf("%d", &guess);
        if (guess == lucky_day) 
        {
            printf("哇,猜中了:)\n");
            return 0;
        } 
        else if (guess < lucky_day) 
        {
            printf("你猜的日期早了,你的lucky day还没到呢\n再猜(1~30):");
        } 
        else 
        {
            printf("你猜的日期晚了,你的lucky day在前面哦\n再猜(1~30):");
        }
    }
    printf("次数用光啦。偷偷告诉你,11月你的1ucky day是 %d号\n", lucky_day);
    return 0;
}

实验总结:1.学会了以当前系统时间作为随机种子 生成随机数以及其对应的两个头文件,并明白了该种形式相对于直接rand()生成随机数的优势

2.复习巩固了基础语法

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

相关文章

  • git常用的分支命令
    克隆一个远程仓库:gitclone远程地址显示分支:gitbranch可选标志标志-r:显示远程分支-a:显示所有分支(本地和远程)-v:显示最后一次提交分分支创建一个分支:gitbranch分支名字创建分支并且切换该分支:gitcheckout-b分支名字切换分支:gitcheckout分支名字删除分支:gi......
  • Python:条件分支 if 语句全讲解
    Python:条件分支if语句全讲解如果我拿出下面的代码,阁下该做何应对?ifnotreset_excutedand(terminatedortruncated): ...else:...----前言:消化论文代码的时候看到这个东西直接大脑冻结,没想过会在这么基础的东西上犯难看完即便是冰之勇者也能学会大概吧本......
  • IEEE全球极限编程大赛10.0题目题解:给出数字N,A,B,求出A,B之间与N互质的数的和(数据范围大)
    题目题目来源第10届IEEE极限编程大赛https://www.hackerrank.com/contests/ieeextreme-challenges/challenges/inti-setsInordertomotivatehisPeruvianstudents,ateacherincludeswordsintheQuechualanguageinhismathclass.Today,hedefinedacurious......
  • 【C语言复习】常见概念(零基础)
    【C语言复习】常见概念1、C语言是什么?2、C语言的历史和辉煌3、编译器的选择VS20223.1编译和链接3.2编译器的对比3.3VS2022的优缺点4、VS项⽬和源⽂件、头⽂件介绍5、第一个C语言程序6、main函数(主函数)7、printf和库函数8、关键字介绍9、字符和ASCII编码10、字符串......
  • 操作系统:内核的基本实现(一)屏幕输出与C语言支持
    使用C语言cdecl约定HimuOSKernel遵守cdecl约定,在32位操作系统上,函数实参在线程栈上按照从右至左的顺序依次压栈(x86cdecl的参数总是在栈上)函数结果保存在寄存器EAX/AX/AL中浮点型结果存放在寄存器ST0中编译后的函数名前缀以一个下划线字符调用者负责清栈8比特或......
  • C语言函数栈帧的创建与销毁(32)
    文章目录前言一、什么是函数栈帧?二、理解函数栈帧能解决什么问题?三、函数栈帧的创建和销毁解析什么是栈?认识相关寄存器和汇编指令四、解析函数栈帧的创建和销毁预备知识函数的调用堆栈准备环境转到反汇编函数栈帧的创建函数栈帧的销毁五、回答开篇总结前言应该是......
  • 实验二 C语言分支与循环基础应用编程-1
    task1.c #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<N){rando......
  • 实验1 现代c++基础编程
    任务1:源代码task1.cpp//现代C++标准库、算法库体验//本例用到以下内容://1.字符串string,动态数组容器类vector、迭代器//2.算法库:反转元素次序、旋转元素//3.函数模板、const引用作为形参#include<iostream>#include<string>#include<vector>#include......
  • Java 函数式编程(1 万字)
    此笔记来自于B站黑马程序员goodJava历史版本及其优势函数式编程,StreamAPI一.函数伊始函数、函数对象函数对象行为参数法延迟执行a-lambdab-方法引用复习小测Math::random()->Math.random()Math::sqrt(doublenumber)->Math.sqrt(number)Stude......
  • 【C】C语言常见概念~
    C语言常见概念转义字符转义字符,顾名思义,转变原来意思的字符比如#include<stdio.h>intmain(){ printf("abcndef"); return0;}输出的结果为:将代码修改一下:#include<stdio.h>intmain(){ printf("abc\ndef"); return0;}输出的结果变为:\n就是一个......