首页 > 其他分享 >学习日记---第2天

学习日记---第2天

时间:2024-11-17 18:43:57浏览次数:3  
标签:语句 学习 arr int 元素 --- case 数组 日记

笔记复习

1.数组

数据是一个集合,里面存放了相同类型的元素

定义方法有三种:

a.数据类型 数组名[数组长度];

arr[元素位置]=值;

b.数据类型 数组名[数组长度]={值1,值2...};

c.数据类型 数组名[]={值1,值2...}

示例:

//第一种
#include<iostream>
using namespace std;

int main() {
	int arr[5];//说明数组的元素个数是五个
	arr[0]=10;
	cout << arr[0] << endl;//第一种
	return 0;
}
 //------------
//第二种
#include<iostream>
using namespace std;

int main() {
	int arr2[5] = { 10,20,30,40,50 };
	//cout << arr2[0] << endl;这样操作想要打印出数组中所有的元素个数很麻烦,所以可以考虑用循环的方式
	int i = 0;
	while (i <= 4) {
		cout << arr2[i] << endl;
		i++;
	}
	return 0;
}
//----------------
//第三种
#include<iostream>
using namespace std;

int main() {
	int arr3[] = { 90,80,70,60,50,40,30,20,10 };//初始化数组之后元素的个数已经确定,因此可以不用输入数组长度,系统会自动推算出
	return 0;

}

数组的数据类型也可以用string

示例:

#include <string>
#include <iostream>

int main() {
    std::string strArray[5]; // 定义一个包含5个std::string对象的数组

    // 初始化数组中的元素
    strArray[0] = "Hello";
    strArray[1] = "World";
    strArray[2] = "C++";
    strArray[3] = "Programming";
    strArray[4] = "Language";

    // 访问数组中的元素
    for (int i = 0; i < 5; ++i) {
        std::cout << strArray[i] << " ";
    }

    return 0;
}

2.数组的首地址

首地址指的是数组或指针所指向的内存区域的起始位置,即该内存区域的第一个字节的地址

直接调用数组的名字调用的是数组的首地址,该首地址是十六进制的,可以在数组名前加上(int),将十六进制转换为十进制  ps:(int)转换与int()转换效果一样,都是将变量的数据类型变为整型

示例:

#include<iostream>
using namespace std;

int main() {
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };//定义一个数组,前面的int应填的是数组类型
	cout << "整个数组占用的内存为:" << sizeof(arr) << endl;
	cout << "每个元素所占用的内存空间为:" << sizeof(arr[0]) << endl;
	int a = sizeof(arr);
	int b = sizeof(arr[0]);
	cout << "数组中的元素个数为:" << a / b << endl;
	//获取首地址
	//直接调用数组的名称调用的是首地址
	cout << "这个数组的首地址为:" << int(arr) << endl;//首地址出现的形式为十六进制,可以用int,强行转换为十进制
	cout << "数组中第一个元素的地址为:" << (int)&arr[0] << endl;//第一个元素的地址即数组的首地址,需要输入取址&才能得到元素的地址
	cout << "数组的第二个元素的地址为:" << (int)&arr[1] << endl;
	//数组名是一个常量,不可以赋值

	system("pause");
	return 0;
}

3.找出一个数组中的最大值/最小值

int arr[]={1,5,6,4,9}
int max=0;
for(int i=0;i<5;i++){
    if(max<arr[i]){
        max=arr[i];
    }
}

原理分析:定义max=0存储最大值,写一个for循环,在for循环中按顺序比较数组中的每个元素与max的大小,如果该元素比max大,则赋值给max,循环结束后max即为最大值。最小值同理。 

4.数组元素的倒置

原理:将数组中的元素互换实现倒置的效果,如下图

代码实现:

分析:以1,9为例,直接使用赋值语法arr[0]=arr[8] , arr[8]=arr[0]会出现两个9,并不会使1和9交换位置,因为在第一个语句中1数组的第0个元素已经从1变为9;那么把这两个语句放在同一行,同时进行呢?很遗憾,c++并不像python一样支持多重赋值操作,因此代码arr[0],arr[8]=arr[8],arr[0]是无法实现的。接下来我们学习使用临时变量的方法:

for (int a = 0; start < end; a++) {
	int temp = arr[start];
	arr[start] = arr[end];
	arr[end] = temp;
	start++;
	end--;
}

原理分析:这里引入了一个临时变量temp,用于存储arr[start]中的值,再将arr[end]赋值给arr[start],最后将temp的值赋值给arr[end],如此便实现了首尾两个元素的互换,同时start+1,end-1以第二个和倒数第二个元素进行该操作,在循环的一开始更新temp中的值,如此便实现了数组中元素的倒置

5.switch语句

当程序需要根据用户输入的数字不同而有3种以上的处理和输出时,可以考虑用switch语句

语法及示例:

/*语法:
int a=0;
cin>>a;
switch(a){
case 1:
    执行语句;
    break;
case 2:
    执行语句;
    break;
......
default:(当上面的case都没有执行时会执行这里的代码)
    执行语句;
    break;
}
*/
//-------------------------------------------------------------------------------
//案例

#include<iostream>
using namespace std;

int main()
{
	cout << "请给电影进行打分" << endl;
	int score = 0;
	cin >> score;
	cout << "您打的分数为:" << score << endl;
	switch (score)
	{
	case 10:
		cout << "您认为这是一部经典电影" << endl;
		break;
	case 9:
		cout << "您认为这是一部经典电影" << endl;
		break;
	case 8:
		cout << "您认为这是一部非常好的电影" << endl;
		break;
	case 7:
		cout << "您认为这是一部非常好的电影" << endl;
		break;
	case 6:
		cout << "您认为这是一部一般的电影" << endl;
		break;
	case 5:
		cout << "您认为这是一部一般的电影" << endl;
		break;
	default:
		cout << "您认为这是一部烂片" << endl;
		break;
	}
	system("pause");
	return 0;
}

注意事项:

1.case与数字之间必须用空格隔开,否则编译器无法将case识别出来。

2.每一个case的执行语句中都必须要有break,否则当程序执行该case时,会继续执行下一个case,直到遇到break或者switch语句结束。

6.continue语句

在循环语句中,用于跳过本次循环中余下的语句,继续执行下一次循环

int main() {
	for (int i = 0; i <= 100; i++) {
		cout << "鸡";
		continue;
		cout << "尼太美" << endl;
	}
	cout << "尼太美" << endl;
    return 0;
}

在条件语句中,用于跳出本次条件语句

int main(){
	for (int i = 0; i <= 100; i++) {
		//如果是奇数输出,偶数不输出
		if (i%2==0) {//continue语句可以用于条件语句,如果满足这一条件那么不执行下面的程序
			continue;

		}
		cout << i << endl;
	}
	return 0;
}

下期预告

冒泡排序

标签:语句,学习,arr,int,元素,---,case,数组,日记
From: https://blog.csdn.net/wlyyywwq/article/details/143743745

相关文章

  • 双非本 大一的蓝桥杯c++组备赛日记----普通人的极限在哪里?
    本文创作灵感:从开学到现在,刷到许许多多的让人热血沸腾、心生向往的视频,大都是MIT精致生活,清北狂人此类的。刷多之后心中躁动,跃跃欲试,可又知自己能力有限,面对神仙般的人物只能望其项背,每日累得吐血,但成效低微,心中茫然不已。又恰逢手贱误删文件,导致重新装了一遍vs。本人之前看的......
  • 20222323 2024-2025-1 《网络与系统攻防技术》实验五实验报告
    1.实验内容(1)从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取如下信息:DNS注册人及联系方式该域名对应IP地址IP地址注册人及联系方式IP地址所在国家、城市和具体地理位置(2)尝试获取BBS、论坛、QQ、MSN中某一好友的IP地址,并查询获取该好友所在的具体......
  • 学期2024-2025-1 学号20241317 《计算机基础与程序设计》第八周学习总结
    学期2024-2025-1学号20241317《计算机基础与程序设计》第八周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上具体......
  • 赣CTF-Misc方向wp
    checkin下载附件,一张图片,拖进010,在文件尾看到隐藏文本,提取并用社会主义价值解密ez_forensics提示为结合题目进行想象,我们会想到取证第一步vc挂载,但是需要密码,研究图片,lsb隐写,在row:G通道找到密钥挂载,得到flag真的是base64哦考点base64隐写点击查看代码importbase64......
  • 【原创】PREEMPT-RT 系统cpu使用率周期飙高问题
    PREEMPT-RT系统某些应用场景syscpu使用率周期CPU飙高问题目录PREEMPT-RT系统某些应用场景syscpu使用率周期CPU飙高问题背景现象复现条件原因解决措施背景在22年进行PREEMPT-RT系统问题的调试时,之前文章在CPU性能优化小记-使用火焰图定位性能问题只是定位解决了其中一个问题,还......
  • 2024-2025-1 20241403 《计算机基础与程序设计》第八周学习总结
    学期(如2024-2025-1)学号(如:20241403)《计算机基础与程序设计》第八周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第八周作业)这个作业的目标功能......
  • request to https://registry.npm.taobao.org/ant-design-vue failed, reason: ce
     一、原因分析其实早在2021年,淘宝就发文称,npm淘宝镜像已经从http://registry.npm.taobao.org切换到了http://registry.npmmirror.com。旧域名也将于2022年5月31日停止服务(直到HTTPS证书到期才真正不能用了)2024年1月22日,淘宝原镜像域名(http:/......
  • 7-Zip 和 WinRAR 的对比分析,按不同的特性进行表格化:
    7-Zip和WinRAR的对比分析,按不同的特性进行表格化:特性7-ZipWinRAR开发公司7-Zip由IgorPavlov开发WinRAR由RARLab开发支持的格式支持7z,ZIP,RAR,TAR,GZ,ISO等支持RAR,ZIP,TAR,GZ,ISO等压缩比率通常提供更高的压缩比率(尤其是7z格式)......
  • C++入门基础知识151—【关于C++ ++ 和 -- 运算符重载】
    成长路上不孤单......
  • buuctf-[GUET-CTF2019]soul sipse
    小白的第14天~flag奉上:flag{5304}1.下载附件得到一个wav文件,经过一顿尝试无果后百度得知是隐写~2.将其放入kali中,使用steghideextract-sfout.wav指令分离出一个txt1文件,其中是一串下载链接。3.下载得到一个png图片,打开发现出错。将其放入hex中分析,发现文件头中的4......