C语言:1~10阶乘的累加计算(循环方法不唯一)
- C语言的循环结构,有for(;;)循环,while()循环,do~while()循环,for循环使用最频繁,三种语句都可以衔接break;continue;来进行中断循环。
- 在for(;;)循环结构中,分号所隔开的语句是(初始化;判断;调整),当都省略时即直接使用for(;;)时,默认为真,即进入死循环。
1~10阶乘的累加计算方法一
点击查看代码
int main() { int sum = 1, i, n; int ret = 0; for (n = 1; n <= 3; n++) { for (i = 1,sum = 1; i <= n; i++)//注意内循环结束得释放sum存有的值,令sum = 1 { sum = sum * i; } ret = ret + sum; } printf("%d\n", ret); return 0; }
1~10阶乘的累加计算方法二
点击查看代码
int main() { int sum = 1, i, n; int ret = 0; for (n = 1; n <= 3; n++) { for (i = 1,sum = 1; i <= n; i++)//注意内循环结束得释放sum存有的值,令sum = 1 { sum = sum * i; } ret = ret + sum; } printf("%d\n", ret); return 0; }
其他的琐碎基础知识(未整理)
点击查看代码
# include <stdio.h> //standard input output 标准输入输出 # include <string.h> int main() //调用mian函数后返回int型,voidmain 写法过时,不适用 { printf("hello world!\n"); //printf print+f 其实就是print+function打印函数 return 0; //返回整型0 } %d 打印整型数字 %p 以地址的形式打印 %x 打印十六进制数字 int main() { printf("%d\n", sizeof(char)); // 1 byte = 8 bit printf("%d\n", sizeof(short)); // 2 byte printf("%d\n", sizeof(int)); // 4 byte printf("%d\n", sizeof(long)); // 4 byte or 8 byte // C语言标准规定 sizeof(long) >= sizeof(int) printf("%d\n", sizeof(long long)); // 8 byte printf("%d\n", sizeof(float)); // 4 byte printf("%d\n", sizeof(double)); // 8 byte return 0; } int main() { float weight = 96.5f; //在使用float向内存申请空间时,会将float型转化double型,因此要在小数后加一个f,来表示单精度型 return 0; } int a = 100; int main() { int a = 10; printf("%d\n", a); //输出最终结果为10,说明局部变量和全局变量可以同时存在,但局部变量优先权大于全部变量 return 0; } int main() { int num1; int num2; int sum; //C 语言规定变量要放在代码块前面,否则编译会报错 ......; //局部变量的作用域是局部范围 全局变量的作用域是整个工程 } //当变量在其他.c文件定义时,应在当前.c 文件使用extern来声明外部变量 //局部变量的生命周期是进入括号开始,出括号结束;全局变量的生命周期是整个程序的周期 常量: ①字面常量 ②const修饰的常变量 ③#define 定义的标识符常量 ④枚举常量enum enum sex { MALE, FEMALE, SECRET }; int main() { printf("%d\n", MALE); printf("%d\n", FEMALE); printf("%d\n",SECRET); return 0; } int main() { char arr1[] = "abc"; //'\0'字符串结束的标志 ,'\0'对应ASCII码值为0 " "引号里面的被称为字符串表面值 char arr2[] = { 'a','b','c' }; //'\0'是转义字符,不算作字符串内容 97(ASCII码值) - 1100001 ASCII编码 printf("%d\n",strlen(arr1)); //在strlen()函数下输出为 3 printf("%d\n",strlen(arr2)); //在strlen()函数下输出为随机值,直到找到随机值'\0',便停止查询 return 0; } 转义字符 --> 三字母词 --> ?? + _() 组成三字母词 在编译器中为防止三字母词的编译产生,使用 --> \?\? 来解决 int main() { printf("%d\n", strlen("C:\test\32\test.c")); return 0; } 操作符: 算术操作符、移位操作符、位操作符 算术操作符: + - * % / ~ 移位操作符: >> << 位操作符: & | ^ 单目操作符: + - ! ~ -- ++ sizeof /* 源码 补码 反码*/ 三目操作符也叫条件操作符(a > b ? a : b) []:下标操作符 ; ():函数调用操作符 重点操作符:& * . -> 只要是整数,在内存中存储的都是二进制数的补码 对于正整数:原码,反码,补码,都相同 对于负整数:①原码:符号位取1,其他位按照二进制写;②反码:符号位不变,其他位按位取反;③补码:在反码的基础上加1 signed int == int 意为有符号整型,可以是负数,也可以是正数 相反,无符号整型为 unsigned int union:联合体,共用体关键字 volatile 操作系统使用的 typedef:类型定义,类型重命名 static :静态局部变量,保留局部变量的值,不会因为生命周期而消失(修饰局部变量,使生命周期变长) static :当修饰全局变量时,该变量只能在当前文件使用(改变了其作用域) extern :相反,在其他文件定义的变量,在当前文件,使用extern声明该变量,即可使用该变量所含的值和属性 32位的计算机,以bit的方式存储,具有2^32种位状态,所需要的内存为512Mb ;若以字节为划分单位32位的计算机存储等量的数据需要4G的空间 内存的的空间是以字节来划分的,一个字节为一个单元 打印地址的方式,①取地址 & ;②打印地址使用 %p ; *p 中的 * 解引用操作符/间接访问操作符, p:为指针变量 int* p 中int* 是指针类型 define 不是关键字,是标识符 static 修饰的变量可以被改变 static 修饰的变量的值会保留上一次赋值的结果 指针变量的大小取决于所在多少位的操作环境,32位则是4个字节,64位则是8个字节,与该指针变量是什么类型无关 计算指针类型的大小,例如sizeof(char*),sizeof(short*)等,其实也是计算指针变量的大小,与所在多少位操作有关有关 在C语言中0为假,非0为真。即-1或者1都为真 悬浮else:在C语言中if else语句,多个if和一个else的话,else对应对近的一个if,不管是否缩进都一样若要该else与其他if匹配则使用{}来括起来,形成代码块的形式 分支语句 If~ else语句 Switch~case 语句 Ctrl + z退出while的死循环, EOF表示end of file ,代表的值是-1;文件结束标志 在for循环中,初始值、判断和调整都可以被省略,但是判断语句被省略后,默认为恒为真,即进入死循环 在这个for循环中,因为判断语句k=0,为假,所以不进行循环 do while循环,是先执行循环,再进行判断
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?