0
点赞
收藏
分享

微信扫一扫

似现场教学,浅识成员,后期继续完善

小迁不秃头 2022-03-12 阅读 73
#include<stdlib.h>
#include<stdio.h>
//void main()
int main()
{
printf("你太帅了!\n");
//system("cls");
//system("pause");
printf("是真的吗");//输出  是真的吗
return 0;
}

/*
#include<stdio.h> 是头文件 可以理解为#include< >尖括号里需要加入库文件供程序使用 比如输入 输出功能 peintf( ), scanf( )函数.
int main()是程序的入口,当程序遇到第一个花括号{ 时 程序开始 最后一个}时程序结束
写代码时注意一条语句一行(这样代码清晰易读),使用的符号是英文字符 如果分号是中文字符:程序会出错,当一条语句结束时要加上分号;
system(“cls”);时清除指令使用时上一句的 你太帅了不会显示在屏幕上 system(“pause”);是暂停指令 按下任意键后在屏幕上输出 是真的吗
printf(“是真的吗”);叫做printf函数 在这个函数的双引号里输入什么便能显示什么 双引号里的内容成为字符串 \n是换行符 如果没有你太帅了!是真的吗显示在同一行
return 0 ; 结束循环与终止程序运行的作用 函数的返回值是0 当不需要返回值的时候则使用 void main()函数
单行注释//
多行注释
/*
*/
在语句后注释我们想表明的意思能更容易理解程序
*/

#include<stdio.h>
#include<stdlib.h>
int main()
{
int b = 100,c=54;//定义变量的时候称为初始化 int b; b=66;这样不是初始化 可以同时赋值多个同种数据类型的变量
float e = 5.45869796856858658645;
const int f = 90;//常量
printf("b c的值分别为:%d %d  %f\n",b,c,e);// %d是格式字符 将b的内容显示出来   b的值为可称为其他字符(其他字符原样输出)  #d与%d之间不用,隔开 b与c之间要 
//如果浮点型变量e的格式字符用%d则不能输出原数 单精度浮点型只能精确到小数点后六位并且(四舍五入)

//判断语句 if  else  两种情况
if (b == c)
{
	//printf("牛牛\n"); //多条语句需要花括号 并且判断需要两个等号 一个等是赋值
	printf("两者相等\n");
}
//b = 1; 出错      一个if 对应一个else 并且是紧挨着的
else
{
	printf("两者不相等\n");
}

//判断语两种以上情况 if else else if
if(b==c)
	printf("b=c\n");
else if(b==e)
printf("b=e\n");
else
printf("没有相等的\n");


return 0;

}

/*
变量相当于一种容器 如洗发水瓶子得装洗发水 如果装酱油那不符合常理
int 是整型 b是一个变量 =是赋值号将右边的东西赋值给左边 int解释说b是什么东西可以存放什么物品
变量命名规则:1,可以有下划线 _ 字母 数字组合 如:_a1 2,只能是下划线或者字母开头 如 1a是错的 3,不能是关键字如:main ,int ,printf。
4,不含空格如a b错误 5,区分大小写,如PRINtf是可以的。
变量:赋值后值仍可以改变 常量:赋值后值不可以改变 如f=7 则错误
*/

#include<stdio.h>
int main()
{
char a = 'a'; //单个字符
printf("%d %c\n",a,a);
char str[] = "sgsihiough";//多个字符称为字符串
printf("%s\n",str);

return 0;
}

/*
char 是字符类型 一个变量a只能存放一个字符(char a = ‘etyerg’;出错容量有限),单引号里的就是字符 双引号里的称为字符串
%c输出的是输出单个字符,比如,a,b,c这种。%d是输出十进制整数 字符a用%d输出是97 ,字符A用%d输出是65 参考ASCII码表
大小写之间的十进制差是32 因为char范围在整型范围内所以可以用整型字符%d输出十进制
使用多个字符就得使用数组来储存格式字符为%s
*/

#include<stdio.h>
#define _CRT_SECURE_NO_WARNINGS
#include <string.h>
int main()
{
int a;
float b;
char c;

scanf_s("%d %f %c",&a,&b,&c,1);//scanf_s("%d, %f ,%c",&a,&b,&c,1);有逗号情况下输入第一个后按逗号继续输入   无逗号第一个后按回车键
printf("%d %f %c",a,b,c);//&是取地址符号

char     st, s[10];//10就是数组的长度
scanf_s("%c %s" ,  &st, 1,s,80);  //字符c输入1个,c后面跟1,s字符数组10个,所以s后面加80。 体现scanf_s的安全性
printf("%c %s",st,s );

char str[3];
scanf_s("%s",str,3);//表示最多读取2个字符,因为buf[2]要放'\0'  str是字符数组的首地址,不需要&来取地址
printf("%s",str);

return 0;

}

/*
scanf_s输入函数是scanf()的前身,由于编译器的原因使用scanf_s更加安全
trcmp作用就是在strcmp函数的圆括号中传入两个内容,分别用逗号进行隔开,如果相等,那么它就会返回一个0
*/

#include<stdio.h>
int main()
{
int array[6] = { 1,4,5,7,7,5};
printf("%d\n",array[2]);
array[2] = 111;
printf("%d\n", array[2]);

//字符数组
char str[] = "ewrtewtt";
str[2] = 'i';
printf("%s\n",str);// ewitewtt
printf("%c\n", str[2]);// i

}

/*
数组:相同数据类型 数据的集合 array[2];输出的是5 下标+1则对应数组的元素
数组元素的个数也可以改。 当[]里没有数字 会自动分配长度 有时则限制长度
*/

#include<stdio.h>
int main()
{
	char a[] = { '1','2','3','4','5' };//字符数组

	int i = 0;
	while (i < 5) 
	{
		printf("%c \n", a[i]);
		i++;
	}

	int j = 0;
	do {
		printf("%c \n", a[j]);
		j++;
	} while (j <3);
}

/*
当i<5时一直循环 循环体里的内容 当不满足条件则跳出循环
第一个先判断条件 如果是真则循环 第二个至少会执行一次再去判断条件
*/

#include<stdio.h>
int main()
{
/*
char a[] = { '1','2','3','4','5' };

int i;
for (i = 0; i < 10; i++) //注意:用分号隔开;
{
	printf("%c", a[i]);//12345烫烫?
	//原因:i<10循环本来循环5次就可以把hello显示出来了 但是得循环10次
	//变量存储在一个地址中;数组在内存中是连续存放的,循环数组时沿着数组最开始的变量依次往下找值,如果你设置循环过头了也会找到对应的值。
	//简单来说 a{0}-a[4]有hello来初始化 a[5]-a[9]没有初始化 但是内存中有遗留值 上次使用的内容没清理干净 于是就给他们“赋值”便出现乱码

}
``

`

*/

int i, j;
for (i = 1; i < 10; i++) //行
{
	for (j = 1; j < i + 1; j++)//列
	{
		printf("%d * %d = %d ", i, j, i * j);
	}
	printf("\n");
}
return 0;
}

/*
嵌套循环的执行顺序: (1 )i = 1; (2) i < 10;(3)j = 1; (4)j < i + 1; (5)printf("%d * %d = %d “, i, j, i * j); (6)printf(”\n");
(7)当j<i+1不满足时j++ (8)(j = 1; (9)j < i + 1; (10)printf("%d * %d = %d ", i, j, i * j); 以此类推当j < i + 1;不满足时 到 i++在从头开始循环
*/

#include<stdio.h>
void c_prin(int girl)
{
printf("你有%d个女朋友\n",girl);
}
int product(int a, int b)
{
int u = a * b;
	return u * a;//5*4*5

}
int main()
{
int g = 66;
c_prin(g);
int c = product(5,4);
printf("%d",c);

return 0;
}

/*
避免用一个菜单,需要重复打原来的代码 void c_prin(int girl)是一个自定义函数((void函数返回类型(无返回值)) (c_prin函数名) (int girl形参 int形参类型))
c_prin(g);里面的g是实参 后面的圆括号是标准的格式,圆括号后面的花括号中就编写这个自定义功能的代码, 表示这个自定义函数有什么功能。menu();调用自这个定义函数。
a,b都是整数所以 返回值得需要int 来接受 当函数运行到 product()函数时便会调用函数 函数通过return 将运算结果传给int返回值 在返回给product函数,再赋值给c。
*/

#include<stdio.h>
int main()
{
int a = 1;
if (a == 1)
{
	int a = 5;
	printf("%d\n",a);// 5
}

printf("%d\n", a);// 1

return 0;
}

/*
为什么变量a定义了两次却没有出错: 因为这涉及到变量的生命周期 if里的a 遇到花括号{ }便会结束
*/

#include<stdio.h>
int main()
{
int* ptr;//创建int类型的指针 整型指针 指针名:ptr
int a = 5;
ptr = &a;//&取地址符 将a的地址赋值给ptr ptr拥有对a直接操控的权限
printf("a的值为:%d\n", a);// 5
*ptr = 36;//*取值符号   * 号对这个变量地址的内容进行更改。
printf("此时a的值为:%d\n",a);// 36

int**ptr1;//多重指针 指向指针的指针  *ptr1也是一个变量 也有内存地址
ptr1 = &ptr;// 
printf("二重指针值:%d\n",**ptr1);// 36

return 0;

}

/*
ptr1指向指针*ptr *ptr指向变量a 最终ptr1操控的就是变量a 以此类推
*/

#include<stdio.h>
struct student
{
int ID;
int grade;

}xiaowang,xiaoniu;//第一种方法
int main()
{
struct student xiaoge, xiaomei {7583773,97};//第二种方法
xiaoge.ID = 190004356;
xiaoge.grade = 99;
printf("xiaoge ID为:%d\n", xiaoge.ID);
printf("xiaoge grede为:%d\n", xiaoge.grade);

printf("xiaomei ID为:%d\n", xiaomei.ID);
printf("xiaomei grede为:%d\n", xiaomei.grade);

return 0;

}

/*
我们平时使用的数据类型有 int float char 等等 我们也可以创建自己的数据类型
student是结构体名 xiaowang,xiaoniu分别是结构体变量名1,结构体变量名2
结构体变量名声明的两种方式 看上方
点.可以理解为访问的意思 如xiaoge.ID 访问xiaoge的ID
直接连着结构体的结构体变量名不能直接赋值 建一个结构体变量名则可以直接赋值

举报

相关推荐

0 条评论