ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-08-07 01:31:42  阅读:181  来源: 互联网

标签:10 变量 int C语言 printf 阶乘 sizeof main byte


  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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有