C语言编程笔记

C语言编程笔记

5/26 b站翁恺习题+数组+整数的格式化输出


题8:求a的连续和

e.g :2+22+222+2222+…+222…2(n个a)

#include<stdio.h>
int main()
{
	int a;
	int n;
	scanf("%d %d",&a,&n); 
	int sum=0;
	int k=a;
	for (int i=1;i<=n;i++){
		sum+=a;
		a=a*10+k;
	}
	printf("%d",sum);
}

二维数组的初始化

  1. 分组赋值——每一组数据,赋给相应的一行数组元素

e.g int array[3][2] = {{1, 2}, {3, 4}, {5, 6}};

相当于:

(1) {1, 2}数据,赋给array[0][ ] 表示第 1行数组;

(2) {3, 4}数据,赋给array[1][ ] 表示第 2行数组;

(3) {5, 6}数据,赋给array[2][ ] 表示第 3行数

  1. 连续赋值

e.g int array[3][2] = {1, 2, 3, 4, 5, 6};

此时,就把{1, 2, 3, 4, 5, 6}表示的一组数据,赋给二维数组。赋值的规则如下:

(1) array[3][2]表示3行2列数据;每一行是2个元素;

(2) 从 {1, 2, 3, 4, 5, 6}中取出2个元素,赋给第一行元素;所以,第一行元素得到{1, 2}数据组,剩下{3, 4, 5, 6}数据组;

(3) 从 {3, 4, 5, 6}数据组中取出2个元素,赋给第二行元素,所以,第二行元素得到{3, 4}数据组,剩下{5, 6}数据组。

(4) 从{5, 6}数据组中取出2个元素,赋给第三行元素,所以,第三行元素得到{5, 6}数据组,没有剩下任何数据。

(5) 最终,把初始化赋值的数据组划分成一行一行元素,设置到二维数组中。

声明:如果初始化赋值数据组的元素比二维数组元素少,则剩下的数组元素默认设置为0.

以下为非常规表达:
int array1[][2] = {1,2,3,4,5,6} 同 array[3][2]
int array2[][4] = { {1,2},{3,4,5},{6} }


整数的格式化输出

  1. 整数的输入输出:
    int & long long
    %d: int
    %u: unsigned
    %ld: long long
    %lu: unsigned long long

  2. 8进制和16进制
    一个以 0 开始的数字字面量是8进制 012=10
    一个以 0x 开始的数字字面量是16进制
    %o——输出8进制 %x——输出16进制

  3. 格式字符:
    %d :十进制
    %o : 八进制
    %x,X: 十六进制
    %u :十进制绝对值
    %f : 小数形式单、双精度实数 (%.2f)
    %e,E :指数形式单、双精度实数
    %g,G:以%f或%e中较短的输出宽度输出单、双精度实数
    %c : 输出单个字符
    %s : 输出字符串

  4. 精度
    精度格式符以“.”开头,后跟十进制整数。如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。

在这里插入图片描述
本例中:
“%5d ”要求输出宽度为5,而a值为15只有两位故补三个空格。

“%f”和“%lf ”格式的输出相同,说明“l”符对“f”类型无影响。“%5.4lf”指定输出宽度为5,精度为4,由于实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去。

第17行输出双精度实数,“%8.4lf ”由于指定精度为4位故截去了超过4位的部分。

第20行输出字符量d,其中“%8c ”指定输出宽度为8故在输出字符p之前补加7个空格。


附:单精度与双精度区别
区别:单精度浮点数在机内占4个字节,双精度浮点数在机内占8个字节。单精度浮点数有效数字8位,双精度浮点数有效数字16位。一般CPU处理单精度浮点数的速度比处理双精度浮点数快。”

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值