首页 > 其他分享 >20240315,逻辑类型,条件和逗号,函数,数组

20240315,逻辑类型,条件和逗号,函数,数组

时间:2024-03-15 23:58:36浏览次数:25  
标签:20240315 return int max sum ret 逗号 数组 printf

刚好看到逻辑类型,今天早上有个很好玩的事情,一早上醒来圆圆的小狗跑到了床下,然后她说
“你是不是打我的小狗了”
我;”我没有,我什么都不知道”
”他的屁股都扁了“
我:“我怎么知道,他的屁股扁了关我什么事"
“你怎么知道他的屁股扁了”
我“不是你说的嘛”
“我诈你的”,然后走了
我“……”不是,自己的妹妹是个傻子,怎么破????

一,逻辑类型

#include<stdbool.h> 
int main(){
	bool a=true;
	bool b=false;
	printf("%d\n",a);
	printf("%d\n",b);

实际上并没有真正的BOOL量的类型,还是整数?反正输出1 0

1.1 逻辑运算

!【逻辑‘非’】,&&【这个念AND AND,逻辑‘与’】,||【这个念OR OR,逻辑’或‘】

1.2 短路

说,从左到右边运算,左边不行了,就不算右边了,说不要把赋值和复合赋值写进去
但是???&&就算算出右边,左边的也不满足条件啊,那不还是不行,算不算有什么意义,我没懂为撒特意说?

int a=-1;
	if(a>0&&a==0){
		printf("OK\n");
	}else{
		printf("A\n");
	}
	printf("%d\n",a);
int b=0;
	if(a>0&&b==0){
		printf("OK\n");
	}else{
		printf("A\n");
	}
	printf("%d\n",a);

 二,条件运算和逗号运算

2.1 条件

条件  【问号】  条件符合的值(操作)【冒号】  条件不符合的值(操作)
==IF(条件){条件符合的值}ELSE{条件不符的值}
什么从右边向左算
不建议用

2.2 逗号

//int a=3+4,5+6;
	int b=(3+4,5+6);
	
	//printf("%d\n",a);
	printf("%d\n",b);

括号里面的,逗号运算,就是后面那个,11,?
说主要是FOR用到

三,函数

3.1 求和

#include<stdio.h>

	void sum(int begin,int end)
	{
		int i;
		int sum=0;
		for(i=begin;i<=end;i++){
			sum+=i;
		}
		printf("%d到%d的和是%d",begin,end,sum);
	}
int main(){
	
	sum(1,10);
	sum(20,30);
	sum(35,45);
	 
	return 0;
}

3.2 定义和调用

void cheer()
	{
		printf("cheer\n");
	}
int main(){
	
	cheer();

反正要带那个小括号
????他知道是哪里调用他,会返回第二次调用他的地方??

3.3 返回

#include<stdio.h>
int max(int a,int b)
{
	int ret;
	if (a > b) {
		ret = a;
	}
	else {
		ret = b;
	}
	return ret;
}
int main() {
	int a, b, c;
	a = 5;
	b = 6;
	c = max(10, 12);
	c = max(a, b);
	c = max(c, 23);
	printf("%d\n", max(a, b));
	return 0;
}

求和是没有返回值的,输出的结果是函数自己运算的结果,但是!没有能产生一个int变量给下面的语句进行其他操作,也不能输出
返回会产生一个变量,能带入其他的运算

3.4 先后关系

#include<stdio.h>
int max(int a, int b);//声明
int main() {

	int a, b, c;
	a = 5;
	b = 6;
	c = max(10, 12);
	c = max(a, b);
	c = max(c, 23);
	printf("%d\n", max(a, b));
	return 0;
}
int max(int a, int b)//定义
{
	int ret;
	if (a > b) {
		ret = a;
	}
	else {
		ret = b;
	}
	return ret;
}

 可以放后面,先给出一个生命,但是,函数定义INT MAIN(){}里面都不行,原型可以放里面外面,
定义和声明都要一致

int max(int f, int t);//声明
int max(int , int );//声明

不检查参数名称,只检查参数类型,对机器没什么意义,对人有

3.5 参数传递

类型管的不严,会自动类型转换

	void swap(int a,int b)
	{
		int c=a;
		a=b;
		b=c;
	}
	
int main(){
	swap(5,6);
	printf("a=%d,b=%d",a,b);
	return 0;
}

平行空间?类似CAD的图纸和视图?
只能传值!!!!而不是把变量A B传进去

#include<stdio.h>

	void swap(int a,int b)
	{
		int c=a;
		a=b;
		b=c;
	}
	
int main(){
	int a=5;
	int b=6;
	swap(a,b);
	printf("a=%d,b=%d\n",a,b);
	return 0;
}

3.6 本地变量

int a = 0;
int b = 0;
printf("a=%d\n", a);
{
	printf("a=%d\n", a);
	int a = 7;
	printf("a=%d\n", a);
}
{
	int a = 7;
	int i = 7;
}
printf("a=%d\n", a);

 3.7 其他

3.7.1,没有参数时

#include<stdio.h>

void swap(void);
//原型要把参数写全,不写,视为不确定用什么参数
//但是,刚注意我写了VOID,不懂
int sum();

int main() {
	int a = 5;
	int b = 6;
	swap(a, b);
	printf("a=%d b=%d\n", a,b);
	return 0;
}

void swap(double a, double b) {
	int c = a/2;
	a = b/2;
	b = c;
	printf("a=%f b=%f\n", a, b);
}

int sum(int a, int b) {
	int i = a + b;
	return i;
}

总结就是,好好写,都对上

3.7.2 逗号

f(a,b)//只是一个标点符号,输入两个值
f((a,b))//一个值

3.7.3 其他

不可以嵌套函数,INT MAIN()也是一个函数,return0还是有人看的

四,数组

4.1 平均数和输出

int x = 0;
double sum=0 ;
double ret = 0;
int i = 0;

scanf_s("%d", &x);
while (x > 0) {
	sum += x;
	i++;
	ret = sum / i;
	scanf_s("%d", &x);//我又忘了捏
}
printf("和是%.0f,平均数是%.3f\n",sum, ret);

scanf放在循环里面真的可以把我整神,还有输出,double不可以%d输出,但是可以%。0F

#include<stdio.h>
int main(){
	int x = 0;
	double sum=0 ;
	double ret = 0;
	int i = 0;
	int number[100];
	//能放100个数的数组
	scanf_s("%d", &x);
	while (x > 0) {
		number[i] = x;
		//i会不断递增,把X的值放进,I的位置上的那个单元?
		{
			int t;
			printf("%d", i);
			for (t = 0; t < i; t++) {
				printf("%d\t", number[t]);
			}
			printf("\n");
		}//检查数组的内容,大循环里面的小循环,进入这个循环就会把数组的数挨个输出一遍
         //所以除了开头,number【1】只代表这个数组里面,序号为1的一个变量
		sum += x;
		i++;
		ret = sum / i;
		scanf_s("%d", &x);
	}
	printf("和是%.0f,平均数是%.3f\n大于平均数的数是",sum, ret);
	int cnt ;
	for (cnt = 0; i > cnt; cnt++) {
		//遍历他?循环判断,大于平均数输出!
		if (number[cnt] > ret) {
			printf("%d\t", number[cnt]);
		}
	}
	printf("\n");
	return 0;
}

4.2 定义

数组——变量类型【数组里面的东西的变量类型】变量名称[元素数量]
数组的单元——变量名称[下标OR索引,从0开始计数],0——下标-1

#include<stdio.h>

void f();
int main() {
	f();
	printf("here\n");
	return 0;
}

void f() {
	int a[10];
	a[10] = 0;
}

越界!

标签:20240315,return,int,max,sum,ret,逗号,数组,printf
From: https://blog.csdn.net/qq_51583806/article/details/136745331

相关文章

  • Java中二维数组全部赋成同一个值
    有以下几种方法可以将二维数组全部赋成同一个值:1. 使用双重循环遍历二维数组,逐个元素赋值。int[][]arr=newint[3][3];intvalue=5;for(inti=0;i<arr.length;i++){for(intj=0;j<arr[i].length;j++){arr[i][j]=value;}}2. 使用Arrays.......
  • 树状数组
    模板题:https://www.luogu.com.cn/problem/P3374题解:#include<bits/stdc++.h>usingnamespacestd;constintN=5e5+5;intm,n;intc[N];intlowbit(intx){ returnx&-x;}intquery(intx){ intres=0; while(x){ res+=c[x]; x=x......
  • 4.数组
    一、为什么需要数组由于变量只能存放一个值,当要一回存放多个值时会很麻烦,所以C++的创造者增加了数组这个概念,能够同时存放多个值。二、一维数组一维数组的定义//数组定义//格式:数据类型数组名[数组长度]={元素1,元素2,元素3};inta1[5];floata2[15];doublea3[100];......
  • 20240315打卡
    第三周第一天第二天第三天第四天第五天第六天第七天所花时间3h5h0h1h0h代码量(行)2742560640博客量(篇)11111知识点了解完成AndroidStudio中原生数据库SQlite简单的CRUD本地数据库连接到远程数据库海底谭练习python的Pyautogui,自动......
  • 数组扩容golang
    packagemainimport( "fmt" "unsafe")funcmain(){ which:=make([]byte,0) which=append(which,[]byte("123")...) which1:=which fmt.Printf("which:%s varpointer:%p arrpointer%p cap:%d len:%d, w......
  • 第一课——树状数组
    前缀和算法可以计算某一个区间的累记和,但是出现修改的时候,前缀和的效率便得不到保障。于是数状数组出现了。出现原因总结——需求从单纯的区间查询变为了单点修改+区间查询。树状数组本文不探讨树状数组的开发过程,这里先给出树状数组的结构:树状数组的设计非常巧妙,它让下标为......
  • Java题目-数组计算-中位数- 圆类的构造-时间计算-学生类设计
    第一题:数组计算题目描述:编写Java程序,计算两个整型数组的和、差、乘积、商的整数部分及大小关系。定义如下:和:两个数组对应元素的和,若元素缺失,则补0;差:第一个数组和第二个数组对应元素的差,若元素缺失,则补0;乘积:两个数组对应元素的积,若元素缺失,则计0;除:第一个数组元素除以第二......
  • 查分数组
    //差分数组工具类classDifference{//差分数组privateint[]diff;/*输入一个初始数组,区间操作将在这个数组上进行*/publicDifference(int[]nums){assertnums.length>0;diff=newint[nums.length];//根据初始......
  • MATLAB学习笔记1.数组运算
    先来介绍两个常用的,在命令行里边输入“clc”,就会清空以上的命令行(也就是这个直接与你对话的地方)的所有内容;但是并不会把已经设置的变量清空,要想清空变量,则需要在命令行中输入“clear”,这样就可以把右侧已经设置的变量都清空掉了。下面是示例输入回车再输入“clear”并输入......
  • 108. 将有序数组转换为二叉搜索树c
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/structTreeNode*build(int*nums,inthead,inttail){if(head>tail)returnNULL;intmid=head+(......