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循环,是先执行循环,再进行判断
标签:10,变量,int,C语言,printf,阶乘,sizeof,main,byte 来源: https://www.cnblogs.com/xylophone-chb/p/16558324.html