C语言,C++随记(2)

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

**

关于死循环的一些问题

**
(1)看似不是死循环,其实是死循环
例:

#include<stdio.h>
int main()
{
	char c=1;
	int s=0;
	while(c<151)
	{
		s+=c++;
	}
	printf("%d",s);
	return 0;
}

这个例题中因为c是char型数据,所以它的取值范围是-128~127;而c的初值为1,当执行while语句时c是加不到128的,c=128其实是c=-128,所以c是永远也到不了151的,s输出是0,所以这个while是死循环。
(2)看似是死循环,其实并不是,他是伪死循环
例:

#include<stdio.h>
int main()
{
	int i=0;
	while(i<100)
	{
		i--;
	}
}

这个例题中i是int型数据,所以它的取值范围是-2147483648~2147483647;i的初值为1,1<100成立,所以执行i–,当i减到-2147483649时他其实是2147483647,所以i的值就大于100,循环结束。
**

a,b互换其值的几种方法

**
(1)

  #include<stdio.h>
    int main()
    {
    	int a,b,c;
    	scanf("%d%d",&a,&b);
    	c=a;
    	a=b;
    	b=c;
    }
(2)
#include<stdio.h>
    int main()
    {
    	int a,b,c;
    	scanf("%d%d",&a,&b);
    	a=a+b;
    	b=a-b;
    	a=a-b;
    }

(3)

#include<stdio.h>
    int main()
    {
         int a,b,c;
    	scanf("%d%d",&a,&b);
    	a=a^b;
    	b=a^b;
    	c=a^b;
    }    

需要注意的是第三种情况只能用于整数。
**

浮点数

**
因为浮点数在计算机中是存不准的,所以不能判断两个浮点数是否相等,要判断其是否相等可以让他们两个作差,若差值小到规定的精度以下时认为其相等即fabs(a-b)<=精度时认为其相等。
**

输入密码并且错误不能超过三次代码

**

#include<stdio.h>
int main()
{
	char s[6] = { '1','2','3','4','5','6' }, b[6] = {};
	int n, k;
	k = 0;
	while (1)
	{
		n = 0;
		printf("请输入密码:\n");
		for (int i = 0; i < 6; i++)
		{
			b[i] = getch();
			printf("*");
		}
		for (int i = 0; i < 6; i++)
		{
			if (s[i] == b[i])
			{
				n++;
			}
		}
		if (n == 6)
		{
			printf("密码正确!"); break;
		}
		else
		{
			printf("密码错误!");
		}
		k++;
		if (k == 3)
		{
			printf("三次机会已完!"); break;
		}
	}
	return 0;
}    

这个代码中使用了while循环,并且他是一个死循环,如果密码正确则使用break跳出循环,如果密码错误就继续循环输入密码,在判断密码是否正确时定义了一个数用来计数,当判断密码次数为三次时break跳出循环。
**

关于break和continue

**
break是直接结束循环体执行循环之后的语句,而continue是跳过本次循环中还未执行的语句进行下一次循环判断,如果为真则继续执行循环体。
需要注意的是break只能跳出一层循环,并不可以从多次循环中直接跳出。

C语言程序设计第4章节练习题 练习4-1 请写出满足以下条件的逻辑表达式 (1)判断ch是否为小写英文字母 (ch>=‘a’)&&(ch<=‘z’)2)判断ch是否为英文字母,分大小写 (ch>=‘a’)&&(ch<=‘z’)||(ch>=‘A’)&&(ch<=‘Z’) (3)3<=x<=5 3<=x&&x<=5 (4)x为0 !x 练习4-2 数学式3<=x<=5,写成C语言表达式"3<=x 阅读详情

相关推荐

linux下c程序c++程序混合编译,c程序中调用c++程序,c语言项目与c++语言项目的合并

把两个开源项目合并到一起,但是一个是c编写,一个是c++编写,在linux环境下实现两个项目的混合编译,以及互相的调用。

u012559520的博客 5246

头歌:c语言结构体

结构体c语言头歌作业

qq_65628600的博客 1万+

CPP已老?Herb Sutter开发CPP2,努力证明CPP的强大

这使您可以在任何现有的C++项目和构建系统中开始尝试Cpp2语法,只需将源文件从.cpp重命名为.cpp2并添加一个构建步骤,结果可以在每个C++20或更高版本的编译器和所有现有的C++工具(调试器、构建系统、sanitizer等)中直接使用,而无需进行任何更改。Cpp2旨在成为C++本身的另一种“皮肤”,只是一种更简单、更安全的编写普通C++类型/函数/对象的方式,以及在更简单的编译器和语法风格中尝试未来新标准C++功能的更快方法。例如,它没有自己的非标准不兼容模块/概念等,与标准C++功能竞争;

yuxingwu9872的博客 808

【Cpp】C和C++混合编程

一、混合编程杂绪 1.1 为什么需要混合编程 Cpp是从C演变过来的,C有很多优秀成熟项目和库,没必要在C++中重写,C++程序可以直接调用调用 庞大项目划分后一部分适合用C(底层),一部分适合用C++(中间层、上层) 1.2 混合编程的支撑 编译型程序的编译过程:源文件->目标(库)文件->可执行程序->镜像文件 任何编程语言执行时都必须是可执行程序,所以都必须先被编译成...

baymaxly的博客 7688

猿创征文|【听听iecne怎么说】C语言 vs Cpp vs C# 有何区别?

共同学习,加入粉丝群,加V:YAN_Pisces_Boom哈喽大家好,我是iecne,本期为大家带来的是【听听iecne怎么说】C语言 vs Cpp vs C# 有何区别?包教包会,快来看看吧!C语言适用于底层应用开发,可以对硬件进行强操控。C++适用于更可控的底层应用不喜欢Java去学C#三连->动力给个三连吧!本节课主要是写了一些杂谈,至此该课示例的思想博主已经分享完了,相信大家对这个逻辑有了一定的理解,大家可以自己动手敲敲代码,感受一下,包教包会。

iecne的博客 2822

C语言--C++调用C语言程序、C语言调用C++程序

1、C++中调用C语言程序 main.cpp文件 #include <iostream> #include "cfun.h" using namespace std; int main() { cout << "C++ Hello world!" << endl; cfun(); return 0; } #if 0 ou...

tyustli 752

c++和c语言之间有什么区别

C语言   C语言是一种古老而又经久不衰的计算机程序设计语言,大约诞生于上个世纪60年代。由于它的设计有很多优点,多年以来深受广大程序设计人员的喜爱,并逐渐 淘汰了很多其它程序设计语言。我们平时使用的大多数软件都是用C语言开发的。 很多后来出现的一些语言也沿用了很多它的东西。C语言的编程方式是一种称为面 向过程的开发方式。也就是说,解决问题的时候,程序员需要思考计算机应该如何一步一步完成这个问题,...

qq_43351159的博客 3万+

C/C++语言中,如何在main.c或main.cpp中调用另一个.c文件

C/C++语言中,如何在main.cpp中调用另一个.c文件主要有5种思路:   1、在VS2012 IDE中,将被引用的.c文件后缀名全部修改为.h,然后通过IDE的解决方案资源管理器中鼠标右键单击“头文件”-"添加"-“现有项”,选中修改后缀名后的.h文件-"添加",将待引用的文件添加到工程中。   添加到“头文件”而不是“源文件”的作用:主要是使头文件的项类型属性为“C/C++ 标头”,而不是“C/C++ 编译器”。后者是将该文件独立编译成目标文件*.obj。用户可右键单击某个.h文件-属性-

云海唯C的专栏 1万+

【C->Cpp】深度过渡由C迈向Cpp(1)

Cpp入门,由C迈向Cpp,Cpp内定义命名空间的原理

石墨博客 1983

C++与C语言的区别

本文主要用C语言C++做对比来学习C++,便于个人理解。C++包含C语言,是对C语言的扩展,在C++中,支持C语言的语法使用,C++是C语言的超集。

2301_78622258的博客 8184

C语言C++语言相互调用

C语言C++语言相互调用 1 C++调用C中的函数 1.1 C++调用C中的函数(正确使用) 1、案例源文件组成 ...

Andy的博客 2万+

从汇编到C++的桥梁:asm2cpp转换工具

本文还有配套的精品资源,点击获取 简介:本文探讨了如何将x86汇编语言转换为C++代码,强调了在特定场合汇编语言的重要性,并通过asm2cpp工具简化了转换过程。转换过程包括语法解析、指令映射、标签处理、预处理器宏的使用以及内存模型的处理。虽然转换后的C++代码具有更好的可读性和可维护性,但可能会丢失某些汇编特性,因此转换需要深思熟虑。 1. x86汇编语言基础 ...

weixin_42360733的博客 1892

llama.cpp的C语言API使用

我们知道,一般运行大语言模型都是在Python上运行的,可是Python的性能太差了,不适合用于生产环境,因此可以采用llama.cpp提供的API在C语言上运行大模型。

wozuishuai_的博客 2908

c++语言程序的后缀,c++中后缀名.c 与.cpp的区别?

ITMISS二者区别如下:.c 是c语言的源程序,.cpp是c++语言的源程序,这是两种不同的语言,语法不同。但是c++兼容c语言的绝大部分语法特性,所以该段代码在C++中可以运行,但是在C语言中就会报错。想要在C中运行,可以将定义变量放置在函数开头,修改后程序段如下:#includevoid main(){int a;a=7;float x,y,z;x=2.5;y=4.7;z=x+a...

weixin_34766614的博客 3266

[原创]C/C++语言中,如何在main.c或main.cpp中调用另一个.c文件

  C/C++语言中,如何在main.cpp中调用另一个.c文件主要有5种思路:   1、在VS2012 IDE中,将被引用的.c文件后缀名全部修改为.h,然后通过IDE的解决方案资源管理器中鼠标右键单击“头文件”-"添加"-“现有项”,选中修改后缀名后的.h文件-"添加",将待引用的文件添加到工程中。   添加到“头文件”而不是“源文件”的作用:主要是使头文件的项类型属性为“C/C++ 标头”...

weixin_33834628的博客 2806

【C/Cpp】在C中的Cpp

由于我们对Cpp的框架还不够了解,在此我这一篇章进行对Cpp语法的拆分(没错,这个Cpp的坑也算是填起来了),Cpp对于学过C的人来说好像似曾相识,两种差别并不是很多,但是为何Cpp有了如此高效的效率?Cpp对C的特征进行了一些修改,Cpp更为复杂的特性将会在后面中介绍。数据类型(datatype)定义使用存储空间(内存)的方式。通过定义数据类型,告诉编译器怎样创建一片特定的存储空间,以及怎样操纵这片存储空间。数据类型可以是内部的或抽象的。内部数据类型是编译器本来能理解的数据类型,直接与编译器关联。C和。

Mongxin_Chan的博客 1339

C语言.c文件调用C++ 中cpp文件中的类

C文件部分: #include "bbb.h"  //包含相应的头文件 test(param0,param1);//在合适的地方调用函数 -------------------------------------分割线------------------------------------------------------------------ 头文件部分:声明的函数在C文件和CPP文...

仗劍走天涯 8598

C++】一篇文章搞懂为什么CPP支持函数重载而C不支持?

Windows操作系统下VS编译C文件 #include <stdio.h> #include <Windows.h> double add(double a, double b); int main() { add(1.0, 2.0); system("pause"); return 0; } 这段代码编译可以通过,但是链接通过不了 报错: 错误 2 error LNK2019: 无法解析的外部符号 _add,该符号在函数 _main 中被引

宫瑞阳的博客 1289

从C语言C++语言

C++读作“C加加”,是“C Plus Plus”的简称。顾名思义,C++ 是在C语言的基础上增加新特性。从语法上看,C语言C++ 的一部分,C语言代码几乎不用修改就能够以 C++ 的方式编译。 对于C和C++的关系,有很多种说法,新人很容易认为C++是C的升级版,C++比C要高级,C++高大上,C过时了,这种想法不一定对,我们先来看一个数据。 ...

C语言技术网-码农有道 3892
上一篇: C语言,C++随记(1)
下一篇: 为什么rand函数生成的随机数是固定的
bareheadedman
博客等级 码龄7年 18粉丝 52原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值