【杂记】之语法学习第一课输入输出与数据类型与选择结构

news2024/10/23 20:27:23

首先学会新建源文件

1.打开DEV C++

2.文件—>新建—>源代码

在这里插入图片描述

3.编写程序

4.编译并运行(F11)

在这里插入图片描述

第一个程序《Hello,World!》

题目描述

编写一个能够输出 Hello,World! 的程序。

提示:

  • 使用英文标点符号;
  • Hello,World! 逗号后面没有空格。
  • HW大写字母。

样例输出

Hello,World!

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
	printf("Hello,World!");
	return 0 ;
}

其中

#include<bits/stdc++.h>//万能库
using namespace std;//表示使用命名空间
int main()//主函数
{
    
	return 0 ;//结束程序运行
}

只是使用 C语言 的话,主函数 外只需要写所调用的库即可。

主函数 内才是程序所要运行的,比如这个题只需要输出一个 Hello,World! ,所以只有一个 printf 是有用的,在这里 printf输出 的意思,而题中给的 Hello,World! 是个固定的一段字符,所以用 双引号 引起来一个输出即可。

C语言 中的代码实现大概是:

#include<stdio.h>
int main()
{
	printf("Hello,World!");
	return 0 ;
}

什么是库

我们在使用类似 printf 这样的操作时,都需要先调用其所对应的 ,否则无法正常使用。

而在该代码中使用的是 万能库 ,注意 ,这个 C语言 中无法使用。

输出字符菱形

题目描述

* 构造一个对角线长 5 5 5 个字符,倾斜放置的菱形。

样例输入 (无输入)


样例输出 #1

  *
 ***
*****
 ***
  *

不可以直接写为:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	printf("  *") ;
	printf(" ***") ;
	printf("*****") ;
	printf(" ***") ;
	printf("  *") ;
	return 0 ;
}

即使写了很多个 printf 也不能实现 换行 的操作,而是要在双引号之间另外写 KaTeX parse error: Undefined control sequence: \n at position 1: \̲n̲ ,如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	printf("  *\n") ;
	printf(" ***\n") ;
	printf("*****\n") ;
	printf(" ***\n") ;
	printf("  *") ;
	return 0 ;
}

第二个程序 《A+B Problem》

题目描述

输入两个整数 a , b a, b a,b,输出它们的和( ∣ a ∣ , ∣ b ∣ ≤ 10 9 |a|,|b| \le {10}^9 a,b109)。

任何一个伟大的思想,都有一个微不足道的开始。

输入格式

两个以空格分开的整数。

输出格式

一个整数。

样例输入

20 30

样例输出

50

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a , b ;
	scanf("%d%d", &a, &b);
	printf("%d",a + b);
	return 0 ;
}

也可以把 a + b 的值先存到一个 c 上:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a , b , c;
	scanf("%d%d", &a, &b);
	c = a + b ;
	printf("%d", c);
	return 0 ;
}

我们每个要使用的 变量 都需要提前声明才能使用,而 int 就是声明 整数型变量 时使用的。

变量的赋值是 从右向左 的,不能写作 a + b = c a + b = c a+b=c ,而是要写成 c = a + b c = a + b c=a+b

思考题中为什么a,b的取值范围小于等于1e9

i n t int int 类型声明变量的取值范围是 − 2147483648 ~ 2147483647 -2147483648~2147483647 21474836482147483647 , 即 − 2 31 ~ 2 31 − 1 -2^{31} ~ 2^{31}-1 2312311

因为 i n t int int 声明的变量是 二进制 下的 32 32 32 位,第一位是符号位,考虑剩余每一位都为 1 1 1 ,第 i i i 位表示 十进制 下的 1 ∗ 2 i − 1 1 * 2^{i-1} 12i1 ,则用等比数列求和公式全部相加后得到答案为 2 31 − 1 2^{31} - 1 2311

超过此范围则被识别为其他奇怪的数。

对变量的理解

交换两个未知变量

给一个整数型变量 a a a b b b ,交换两个数并输出:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a , b ;
	scanf("%d%d", &a, &b) ;
	int c = a ;
	a = b ;
	b = c ;
	printf("%d %d",a , b) ;
	return 0 ;
}

考虑理解为两饮料, A A A 杯里是可乐 B B B 杯里是雪碧,这时候你拿个空杯子,把 A A A 杯里的可乐先倒 C C C 杯里,然后 B B B 杯的雪碧倒入 A A A 空杯中,此时 A A A 杯是雪碧 C C C 杯是可乐 B B B 杯为,最后把 C C C 杯中的可乐倒入 B B B 杯中,此时 A A A 杯是雪碧 B B B 杯是可乐

不声明新的变量:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a , b ;
	scanf("%d%d", &a, &b) ;
	a = a + b ;
	b = a - b ; 
	a = a - b ;
	printf("%d %d",a , b) ;
	return 0 ;
}

这个就纯数学,在纸上手推一下即可。

我们把这两个答案用空格隔开 % d \%d %d 用来给 a a a b b b 占位。

浮点型小数

题目描述

一个三角形的三边长分别是 a a a b b b c c c,那么它的面积为 p ( p − a ) ( p − b ) ( p − c ) \sqrt{p(p-a)(p-b)(p-c)} p(pa)(pb)(pc) ,其中 p = 1 2 ( a + b + c ) p=\frac{1}{2}(a+b+c) p=21(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到 1 1 1 位小数。

输入格式

第一行输入三个实数 a , b , c a,b,c a,b,c,以空格隔开。

输出格式

输出一个实数,表示三角形面积。精确到小数点后 1 1 1 位。

样例输入

3 4 5

样例输出

6.0

需要用到小数时我们用 d o u b l e double double 声明浮点型变量,占位用 % l f \%lf %lf 注意是小写的 L L L 而不是数字 1 1 1 ,输出时需要保留 x x x 位小数就写成 p r i n t f ( " % . x l f " , s ) ; printf("\%.xlf" ,s); printf("%.xlf",s);

#include <bits/stdc++.h>
using namespace std;
int main()
{
	double a,b,c,p,s;
	scanf("%lf%lf%lf" ,&a ,&b ,&c) ;
	p = ( a + b + c ) / 2.0 ;
	s = sqrt(p * (p - a) * (p - b) * (p - c));
	printf("%.1lf" ,s);
	return 0;
}

提示

数据保证能构成三角形, 0 ≤ a , b , c ≤ 1000 0\leq a,b,c\leq 1000 0a,b,c1000,每个边长输入时不超过 2 2 2 位小数。

字符类型与ASCII码

题目描述

给定一个字符,用它构造一个底边长 5 5 5 个字符,高 3 3 3 个字符的等腰字符三角形。

输入格式

输入只有一行,包含一个字符。

输出格式

该字符构成的等腰三角形,底边长 5 5 5 个字符,高 3 3 3 个字符。

样例输入

*

样例输出

  *
 ***
*****

提示

对于 100 % 100 \% 100% 的数据,输入的字符是 ASCII 中的可见字符。

这里这个题不像前面那个直接输出 * 的,而是要看人家给你什么字符,输出对应的字符。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	char c ;
	scanf("%c", &c) ;
	printf("  %c\n", c) ;
	printf(" %c%c%c\n", c, c, c) ;
	printf("%c%c%c%c%c\n", c, c, c, c, c) ;
	return 0 ;
}

字符类型变量声明时用 c h a r char char ,占位时用 % c \%c %c

题目描述

输入一个小写字母,输出其对应的大写字母。例如输入 q q q 时,会输出 Q Q Q

样例输入

q

样例输出

Q

什么是ASCII码? - ASCII码

#include <bits/stdc++.h>
using namespace std;
int main()
{
	char a;
	scanf("%c", &a) ;
	a = a - 32 ;
	printf("%c", a) ;
	return 0 ;
}

理解这个 32 32 32 的由来

#include <bits/stdc++.h>
using namespace std;
int main()
{
	char a;
	scanf("%c", &a) ;
	a = a - ('a' - 'A');
	printf("%c", a) ;
	return 0 ;
}

选择结构

if(判断条件) //优先判断是否成立
{
	执行操作1 ;
	操作2 ; 
}
else if(其他分支) 执行操作 ;//如果前面的if没有成立,则判断该条件是否能成立
else 执行操作 ;//上面的if和若干else if都没有成立,执行else里的操作

其中每个小括号里面的判断条件中,如果需要判断相等,例如判断 a a a 是否等于 b b b ,需要写成 i f ( a = = b ) if(a == b) if(a==b) 这样的两个连续的等号,若满足条件则返回 true ,否则返回 false ,可以理解为分别是 0 0 0 1 1 1

当需要判断多个条件同时成立或成立其一即可时,用 ∣ ∣ || ∣∣ & & \&\& && 连接条件,如当我们需要判断是否 a > = b a>=b a>=b b > = c b>=c b>=c 时不可以写成连等的 i f ( a > = b > = c ) if(a >= b >= c) if(a>=b>=c),而是要写成 i f ( a > = b & & b > = c ) if(a >= b \&\& b >= c) if(a>=b&&b>=c)

题目描述

给定一个整数,判断该数是奇数还是偶数。如果 n n n 是奇数,输出 odd;如果 n n n 是偶数,输出 even

输入格式

输入仅一行,一个整数 n n n

输出格式

输出仅一行,如果 n n n 是奇数,输出 odd;如果 n n n 是偶数,输出 even

样例输入 1

5

样例输出 1

odd

样例输入2

10

样例输出2

even
提示

− 100 ≤ n ≤ 100 -100\le n\le 100 100n100

注意记得考虑负数。

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n ; 
	scanf("%d",&n);
	if(n % 2) printf("odd") ;
	else printf("even") ;
	return 0 ;
}

题目描述

任意输入一个字符,判断其 ASCII 是否是奇数,若是,输出 YES,否则,输出 NO

例如,字符 A 的 ASCII 值是 65,则输出 YES,若输入字符 B(ASCII 值是 66 66 66),则输出 NO

输入格式

输入一个字符。

输出格式

如果其 ASCII 值为奇数,则输出 YES,否则,输出 NO

样例输入1

A

样例输出1

YES

样例输入2

B

样例输出2

NO

这里用 c h a r char char 来声明字符型变量,在运算时自动理解为其对应的 A S C I I ASCII ASCII 码值

#include <bits/stdc++.h>
using namespace std;
int main()
{
	char n ; 
	scanf("%c",&n);
	if(n % 2 == 1) printf("YES") ;
	else printf("NO") ;
	return 0 ;
}

题目描述

输入一个年份,判断这一年是否是闰年,如果是输出 1 1 1,否则输出 0 0 0

1582 1582 1582 年以来,闰年的定义:

普通闰年:公历年份是 4 4 4 的倍数,且不是 100 100 100 的倍数的,为闰年(如 2004 2004 2004 年、 2020 2020 2020 年等就是闰年)。

世纪闰年:公历年份是整百数的,必须是 400 400 400 的倍数才是闰年(如 1900 1900 1900 年不是闰年, 2000 2000 2000 年是闰年)。

输入格式

输入一个正整数 n n n,表示年份。

输出格式

输出一行。如果输入的年份是闰年则输出 1 1 1,否则输出 0 0 0

样例输入1

1926

样例输出1

0

样例输入2

1900

样例输出2

0

样例输入3

2000

样例输出3

1

样例输入4

1996

样例输出4

1

数据保证, 1582 ≤ n ≤ 2020 1582 \leq n \leq 2020 1582n2020 且年份为自然数。

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int a;
	scanf("%d",&a);
	if(((a % 4 == 0) && (a % 100 != 0)) || (a %400==0)) printf("1");
	else printf("0") ;
	return 0;
}

数的,必须是 400 400 400 的倍数才是闰年(如 1900 1900 1900 年不是闰年, 2000 2000 2000 年是闰年)。

输入格式

输入一个正整数 n n n,表示年份。

输出格式

输出一行。如果输入的年份是闰年则输出 1 1 1,否则输出 0 0 0

样例输入1

1926

样例输出1

0

样例输入2

1900

样例输出2

0

样例输入3

2000

样例输出3

1

样例输入4

1996

样例输出4

1

数据保证, 1582 ≤ n ≤ 2020 1582 \leq n \leq 2020 1582n2020 且年份为自然数。

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int a;
	scanf("%d",&a);
	if(((a % 4 == 0) && (a % 100 != 0)) || (a %400==0)) printf("1");
	else printf("0") ;
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2213131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8-基于双TMS320C6678 + XC7K420T的6U CPCI Express高速数据处理平台

1、板卡概述 板卡由我公司自主研发&#xff0c;基于6UCPCI架构&#xff0c;处理板包含双片TI DSP TMS320C6678芯片&#xff1b;一片Xilinx公司FPGA XC7K420T-1FFG1156 芯片&#xff1b;六个千兆网口&#xff08;FPGA两个&#xff0c;DSP四个&#xff09;&#xff1b;DSP与FPGA之…

基于springboot+vue实现的酒店在线预订系统

基于springbootvue实现的酒店在线预订系统 &#xff08;源码L文ppt&#xff09;4-082 4.2 系统结构设计 构图是系统的体系结构&#xff0c;体系结构是体系结构体系的一部分&#xff0c;体系结构体系是体系结…

LabVIEW空间相机测控系统

空间相机是遥感技术中的核心设备&#xff0c;其在太空中的性能对任务的成功至关重要。为了确保空间相机能够在极端环境下稳定工作&#xff0c;地面模拟测试成为必不可少的环节。LabVIEW开发的空间相机测控系统&#xff0c;通过对温度、应力和应变等参数进行高精度测量&#xff…

LeetCode 3319. 第 K 大的完美二叉子树的大小

LeetCode 3319. 第 K 大的完美二叉子树的大小 给你一棵 二叉树 的根节点 root 和一个整数k。 返回第 k 大的 完美二叉子树的大小&#xff0c;如果不存在则返回 -1。 完美二叉树 是指所有叶子节点都在同一层级的树&#xff0c;且每个父节点恰有两个子节点。 子树 是指树中的某一…

计算机网络:数据链路层 —— 以太网(Ethernet)

文章目录 局域网局域网的主要特征 以太网以太网的发展100BASE-T 以太网物理层标准 吉比特以太网载波延伸物理层标准 10吉比特以太网汇聚层交换机物理层标准 40/100吉比特以太网传输媒体 局域网 局域网&#xff08;Local Area Network, LAN&#xff09;是一种计算机网络&#x…

本地装了个pytorch cuda

安装命令选择 pip install torch1.13.1cu116 torchvision0.14.1cu116 torchaudio0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116 torch版本查看 python import torch print(torch.__version__) 查看pytorch能否使用cuda import torch# 检查CUDA是否可用…

如何用AWG实现脉冲激光输出

脉冲激光二极管提供强功率短脉冲的能力&#xff0c;使其成为目标指定和测距等军事应用的理想选择。事实上&#xff0c;开发这些二极管的许多历史动机都有军事渊源。然而&#xff0c;当今的技术进步和成本降低的大背景之下&#xff0c;在测试测量和医学领域新的应用得以开辟。 …

113.WEB渗透测试-信息收集-ARL(4)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;112.WEB渗透测试-信息收集-ARL&#xff08;3&#xff09;-CSDN博客 等待搭建成功 创建成…

Vue深入了解

Vue深入了解 MVVMv-model (双向数据绑定原理)异步更新keep-alive原理$nextTick原理computed 和 watch 的区别css-scoped虚拟DOMVuex && PiniaVue-router原理proxy 与 Object.defineProperty组件通信方式 MVVM <!DOCTYPE html> <html lang"en">&…

声波驱鸟 全向强声广播的应用

HT-360A多层叠形360向广播是恒星科通自主研发的一款应急广播专用设备&#xff0c;该设备内部采用1-4组换能器垂直阵列设置&#xff0c;水平采用指数函数碟形堆叠技术&#xff0c;在垂直方向上多层碟扬声器可实现360度环形垂直阵列&#xff0c;实现多层声场叠加。 系统可采用4G…

Linux驱动中的并发与竞争处理

Linux是一个多任务操作系统&#xff0c;肯定会存在多个任务共同操作同一段内存或者设备的情况&#xff0c;多个任务甚至中断都能访问的资源叫做共享资源&#xff0c;就和共享单车一样。在驱动开发中要注意对共享资源的保护&#xff0c;也就是要处理对共享资源的并发访问。比如共…

智慧校园打架斗殴检测预警系统 异常奔跑检测系统 Python 和 OpenCV 实现简单

在当今数字化时代&#xff0c;智慧校园建设已成为教育领域的重要发展方向。校园安全作为学校管理的重中之重&#xff0c;如何借助先进的技术手段实现高效、精准的安全监控&#xff0c;成为了教育工作者和技术专家共同关注的焦点。其中&#xff0c;智慧校园打架斗殴检测预警系统…

案例|当大型车企水灵灵地用上美创数据透明加解密“四折叠“...

你知道么&#xff1f; 2024年1-8月全球累计乘用车销量4494.5万辆 中国销量约为1361.37万辆 你知道么&#xff1f; 一辆智能网联汽车每天至少收集10TB的数据 数量庞大 涉及车身状态、出行轨迹、语音、视频... 这还不包括汽车制造产业链、内部管理... 你知道么&#xff1f;…

JDK安装环境配置保姆间教程

文章介绍了Java编程语言的基本知识&#xff0c;包括其创始人和发布年份&#xff0c;然后详细阐述了如何下载和安装JDK&#xff0c;以及如何配置JAVA_HOME和Path环境变量&#xff0c;以确保Java开发环境的正确设置。最后&#xff0c;作者提到在JDK1.5以后的版本中&#xff0c;无…

linux jdk环境变量变量新配置方式

1.jdk17--> jdk8环境变量配置,source /etc/profile了也不生效 which java #假设上命令运行结果为/usr/bin/java rm -rf /usr/bin/javaln -s $JAVA_HOME/bin/java /usr/bin/java source /etc/profile# 断开本次远程连接&#xff0c;重连检查java -version 2.jdk环境变量变…

手动、半自动、全自动探针台的区别有哪些

手动探针台、半自动探针台和全自动探针台是三种不同类型的探针台&#xff0c;它们在使用类型、功能、操作方式和价格等方面都有所不同。 手动探针台是一种手动控制的探针台&#xff0c;通常用于没有很多待测器件需要测量或数据需要收集的情况下。该类探针台的优点是灵活、可变…

EXCEL 随机函数 RAND 生成数字填充

大家好&#xff0c;这里是效率办公指南&#xff01; &#x1f522; 在数据分析和模拟中&#xff0c;经常需要生成随机数字。Excel 提供了多个函数来满足这一需求&#xff0c;包括 RAND、RANDARRAY 和 RANDBETWEEN。今天&#xff0c;我们将介绍这些函数的使用方法&#xff0c;并…

FFMPEG音视频API-----------------复用(编码)篇

1.获取AVFormatContext音视频格式上下文 根据后面的几个参数分配AVFormatContext&#xff08;格式上下文&#xff09; 参数1&#xff1a;AVFormatContext **ctx分配返回的地址 参数2&#xff1a;AVOutputFormat *oformat如果提供该参数则通过该参数分配结构体&#xff0c;如…

利用Microsoft Entra Application Proxy在无公网IP条件下安全访问内网计算机

在现代混合办公环境中&#xff0c;如何让员工能够从任何地方安全访问公司内部资源成为了企业的重要挑战。传统的VPN解决方案虽然可以满足需求&#xff0c;但有时配置复杂&#xff0c;并可能涉及公网IP的问题。为了解决这个问题&#xff0c;Microsoft Entra&#xff08;原Azure …