首页 > 其他分享 >2023/9/27 讲课用

2023/9/27 讲课用

时间:2023-09-26 22:12:32浏览次数:32  
标签:27 cout int 讲课 cin 2023 true 表达式 评测

杂谈

表达式

首先来明确一些概念

值(value)

即为一个静态的数据。值可以是整数,浮点数,字符,字符串等

变量(variable)

可以形象地理解为,存储值得容器。

变量有诸多类型,一般而言,变量只能存储对应类型的值。

int a=0;

“ 我向系统声明:我需要一小块内存,来存储一个整数变量,变量的值为 \(0\) ”

变量的值可变,通过赋值操作实现

变量名不是变量的值

char TJU='?';
cout<<YJU<<endl;
//运行结果:?

a=b;//把b的值赋给a,b的值不会改变

int a=1,b=2;
a=b;
cout<<a<<" "<<b<<endl;
//运行结果:2 2

表达式(不知道英语是啥)

表达式的结果是值

1234*4321+1145/14这种表达式的结果就是算数的结果

(a==b&&(c!=d||e>f))这种表达式的值就是逻辑运算的结果,true or false

一般来说,非零的值都被认为是true

逻辑运算

逻辑与,逻辑或,逻辑非

&& || !

逻辑与&& ,两侧都为 true ,结果才是 true

逻辑或||,两侧都为 false ,结果才是 false

逻辑非!,真变假,假变真

运算优先级(选):非>算数>与>或

当然,小括号是最优先的,如果你拿不准,多加点小括号总没有错

if(表达式){
    ;
}
while(表达式){
    ;
}

// 当表达式的值为 true 时,循环才能持续进行,分支中的语句才会执行

if(a>b){
    if(b>c){
      do sth;
    }
}
//equal to
if(a>b&&b>c){
    do sth
}

三目运算符(选)

a>b?a:b;
条件?满足时的值:不满足时的值
科普,不会也没事

i++ 与 ++i

有时间再说

嵌套

例题:对于不定组的 a 和 b,计算两数之和,并统计 998244353 在结果中出现了多少次

int cnt=0;//记得初始化,否则值由系统随机分配
while(cin>>a>>b){
    int sum=a+b;
    if(sum==998244353)
        cnt++;
    cout<<sum<<endl;//这是与局部有关的结果
}
cout<<sum<<endl;//这是与全局有关的结果

例题:课后题 4

int cnt=0;
while(cin>>a>>b>>c){
    cnt=0;//每次要初始化,不能让上次的结果影响到了下次
    for(int i=a;i<=b;i++)
        if(c%i==0)
            cnt++;//局部的计算过程
    cout<<cnt<<endl;//这是对于一组abc的结果
}

bonus: break & continue

有时间再说

SUBMIT 后发生的事

当你提交你的代码后,评测姬会对你的代码进行评测

一般来说,Online Judge 实现的功能,就是对你的代码进行评测,看看它能否完成题目要求的功能

//a+b problem
//Sample input:
//1 3
//Sample output:
//4
int a,b;
cin>>a>>b;
cout<<1+3<<endl;

显然,这份代码输出结果满足样例,但它不能满足题目要求:求给定两个数的和

Online Judge 所作的事,就是让你的代码去计算更多,更加一般的数据

1234 4321

5555

诸如此类

后台的评测数据有很多组,一般不会让错误代码蒙混过关

在线与离线

在线(选)

在线操作,就是当你每进行一次输入,就对当此输入进行运算,随即输出结果

离线(选)

离线操作,就是存下输入的内容,再统一计算、统一输出

关于读入不定行数的数据

while(cin>>x){
    calc(x);
    cout<<ans<<endl;
}
//another possible version:
// while(~scanf("%d",&x)){
while(scanf("%d",&x)!=EOF){
    ;
}

这样,一般被称为在线操作

有的人可能会疑惑:题目中输入的数据是一口气给你的,输出难道不应该在所有输入之后进行吗?评测姬会判我错吗?

这样当然容易实现:把每组数据的答案用数组保存下来,在统一输出即可,不过没必要的,也不会被判错。

原理:评测时,输入数据结尾有个 EOF(End Of File) 作为标记,代表文件的结尾。当 cin读入到 EOF 时,其返回值为 \(0\) ,循环条件不满足,循环自动终止。

标签:27,cout,int,讲课,cin,2023,true,表达式,评测
From: https://www.cnblogs.com/Illyasviel/p/17731376.html

相关文章

  • 【Android面试】2023最新面试专题二:ArrayList篇
    1.4 请说一说ArrayList如何保证线程安全,除了加关键字的方式?这道题想考察什么?1、ArrayList的底层原理?考察的知识点ArrayList底层的源码的理解考生如何回答ArrayList如何保证线程安全继承Arraylist,然后重写或按需求编写自己的方法,这些方法要写成synchronized,在这些synchronized的......
  • 2023年最新京东app端sign签名算法与cipher加解密逆向分析(2023-09-26)
    前言:  本文仅供学习交流,只提供关键思路不会给出完整代码,严禁用于非法用途,若有侵权请联系我删除!技术交流合作请私信!一.工具的选择(抓包工具的选择,是门学问)用到工具如下:1、安卓手机一台,系统版本:android6.01;型号:小米MI4LTE  之所以要选择android6手机,原理如下:  ......
  • 北林OJ题227、228
    记录一下自己做的题227交集#include<iostream>usingnamespacestd;//求有序链表的交集typedefintData;structLNode{ Datadata; LNode*next;};//初始化voidInitList(LNode*&L){ L=newLNode; L->next=NULL;}//尾插法创建链表voidCreateList_B(LNode......
  • P2764 最小路径覆盖问题
    prologue看见题解区好多神犇都是用网络流来做的,但是蒟蒻在刚学完二部图之后就来刷题了,对于这个题的路径输出有一个比较新颖的搞法,所以说就来写了这篇题解。analysis首先,我们为了将它转换成为一个二部图,我们需要对它进行拆点操作(其实最后我跑起来并没有拆点),然后对它进行......
  • kubernetes集群搭建2023
    参考:https://zhuanlan.zhihu.com/p/627310856(比较详细的一篇k8s集群部署文章)https://www.cnblogs.com/libruce/p/17477374.html或者https://zhuanlan.zhihu.com/p/590652259(不关闭防火墙的情况,如何配置端口)https://www.cnblogs.com/suuuch/p/16728103.html(初始化集群或者新节......
  • SMU Autumn 2023 Round 5
    SMUAutumn2023Round5A.EveryoneLovestoSleep把时间都转成分钟,然后存起来,二分找到离他睡觉点最近的一个时间段,减去他的睡觉点,如果最近的在第二天,则把中间的这段时间加起来#include<bits/stdc++.h>#defineintlonglong#definedebug(a)cout<<#a<<"="<<a<<'\n'......
  • 2023-2024-1 20211319蓝宇 《信息安全专业导论》第一周学习总结
    作业信息|这个作业属于哪个课程|2020-2021-1信息安全专业导论(https://edu.cnblogs.com/campus/besti/2020-2021-1fois))||这个作业要求在哪里|[2020-2021-1信息安全专业导论第一周作业](https://edu.cnblogs.com/campus/besti/2020-2021-1fois/homework/11249))||这个作业的......
  • 2023.09.26 联考总结&题解
    T1derby你考虑直接贪心进行匹配即可,就是说对于每一个\(1\)去匹配最大的\(0\)#include<bits/stdc++.h>usingnamespacestd;intn,m;vector<int>A[2],B[2];intmain(){ freopen("derby.in","r",stdin); freopen("derby.out","w",s......
  • 2023.09.25
      今天进行了回文串的练习,上午进行了金属创意制作,充分发挥了自己的动手能力。下午进行了建民老师的课,对类和对象进行了加深学习。课上代码还未完成。。。。。。。#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAXSIZE100intpush(char*zhan,inttop......
  • 2023.9.26
    今天学习了数据结构,首先学习了栈的基本知识,栈的初始化为先给栈分配一个预定大小的数组空间,接着学习了如栈的操作,将元素押入栈顶,用栈顶指针加一,出栈操做同上类似。接着学习了链式表的栈操作,类似于单链表的结构,利用前插法押入元素,在顺序出栈同单链表相似。紧接着学习了递归思想,首先......