其他分享
首页 > 其他分享> > C语言:1~10阶乘的累加计算(循环方法不唯一)

C语言:1~10阶乘的累加计算(循环方法不唯一)

作者:互联网

  1. C语言的循环结构,有for(;;)循环,while()循环,do~while()循环,for循环使用最频繁,三种语句都可以衔接break;continue;来进行中断循环。
  2. 在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