C语言%的多种用法

C语言中%号那些事儿1、%之取余运算符的使用2、%之作格式符使用2.1、C语言格式符

3、%之搭配 * 的使用4、%之搭配 # 的使用5、客套话

C语言中%号那些事儿

前言: 众所周知:%百分号,在九年义务教育中,表示分数的分母是100的分数之比。即:百分比,如:99%,等价于小数表示为:0.99

那么在我们C语言中%号又有那些值得学习的用途呢? 1.%取余运算符 2.%作格式符使用 3.%搭配*号的作用 4.%搭配#号的作用

1、%之取余运算符的使用

(1)C语言中%最常见的就是作取余运算符,或称为取模运算。 取余简而言之就是取得结果是余数。 (2)值得注意的是,与除法 ‘/’ 不同的是,%取余运算的两边均为整数,不能为小数(浮点数)。 (3) % 取余运算符例程1(请参考注释理解“食用”哦): 代码说明:

首先,C语言除法运算:结果是否为整数,是根据除号两边是否为整数进行运算的。 而取余运算:%号两边都必须为整数。

基于VS2019编译器展示一下 代码片:

/*例程1.1*/

#include

int main()

{

int a1 = 5;

int a2 = 5.2;

int b1 = 15;

int b2 = 15.6;

printf("%d\n", b2 / a1);//当 '/'号左边为浮点数,右边为整数时,结果为小数

printf("%d\n", b1 / a2);//当 '/'号左边为整数,右边为浮点数时,结果为小数

printf("%d\n", b1 / a1);//当 '/'号左边为整数,右边为整数时,结果为整数

int c = 16;

printf("%d\n", a1 % b1);//%取余运算(取模运算)--- 两边必须为整数

printf("%d\n", c % a1);//%取余运算(取模运算)--- 两边必须为整数

return 0;

}

如图所示:

(4) % 取余运算符例程2(请参考注释理解“食用”哦): 代码说明:

C语言中%作取余运算在条件判断中的应用 如:求100以内5的倍数

基于VS2019编译器展示一下 代码片:

/*例程1.2*/

#include

int main()

{

int i = 0;

for (i = 0; i < 100; i++)

{

if (0 == i % 5)//当每次循环的i与题目中关键数5作取余运算,若余数为零说明,就是5的倍数

//这里就是%号作取余运算符时,经常与条件判断应用

{

printf("%d\n",i);

}

}

return 0;

}

如图所示:

2、%之作格式符使用

2.1、C语言格式符

(1)格式符说明:由“%”和小写字母组成,如%d%f等,格式总是由“%”字符开始的。不同类型的数据用不同的格式字符。 作用:是将输出的数据转换为指定的格式输出。

(2)常见格式符如表所示:

格式符格式符功能%d整形输出%c输出单个字符%f输出实数/小数%o以八进制数形式输出整数%x以十六进制数形式输出整数%s输出字符串%e以指数形式输出实数%g根据大小自动选f格式或e格式(不输出无意义的零)

(3)% 作格式符使用例程(请参考注释理解“食用”哦): 代码说明:

%号作格式符引导符号的作用

基于VS2019编译器展示一下 代码片:

/*例程2*/

#include

int main()

{

int a = 10;

char A = 'A';

char ch[] = "hello";

float b = 3.14;

double PI = 3.1415926;

long long int m = 65535123456789;

//%号作格式符引导符号的作用

printf("%d\n",a);//% + d --- 输出十进制

printf("%c\n", A);//% + c --- 输出字符

printf("%s\n", ch);//% + s --- 输出字符串

printf("%f\n",b);//% + f --- 输出浮点数(小数)

printf("%.2f\n", b);//% + 数字 + f --- 输浮点数并保留小数点后几位数

printf("%lf\n",PI);//% + lf --- 输出双精度浮点数

printf("%lld\n",m);//% + lld --- 输出长长整型数

int* pa = &a;

printf("%p\n",pa);//% + p --- 输出地址

return 0;

}

如图所示:

3、%之搭配 * 的使用

说明: (1)主要在 scanf( ) 函数起到了,跳过对应的输入的作用,使得%这次的输入跳过不被输入执行。 (2)在 printf( ) 函数中应用同理,会跳过对应的输出对象。 (3)% 搭配号的作用例程1(请参考注释理解“食用”哦): 代码说明:

先上一道通俗易懂的菜

基于VS2019编译器展示一下 代码片:

/*例程3.1*/

#include

int main()

{

int a = 100;

scanf("%*d",&a);//%*跳过了输入的数据

printf("a = %d\n",a);//仍然打印100

return 0;

}

如图所示:

(4)% 搭配*号的作用例程2(请参考注释理解“食用”哦): 代码说明:

多个scanf()函数输入参数的例程

基于VS2019编译器展示一下 代码片:

/*例程3.2*/

#include

int main()

{

int a = 0;

int b = 0;

int c = 0;

scanf("%d %*d %d",&a,&b,&c);// %*号作用是跳过输入的数据

printf("a = %d\n",a);

printf("b = %d\n",b);//跳过后b 保存的就是c输入的数据了

printf("c = %d\n",c);//c默认补0

return 0;

}

如图所示:

4、%之搭配 # 的使用

说明: (1)主要作用:使输出保留进制的前缀符号 (2)以8进制为例,保留进制符号017;以16进制为例,保留进制符号0x17(x为小写) (3)% 搭配#号的作用例程(请参考注释理解“食用”哦): 代码说明:

建议在学习了八进制和十六进制的格式后食用

基于VS2019编译器展示一下 代码片:

/*例程4*/

#include

int main()

{

int a = 015;

int b = 0xab;

printf("a1 = %o\n",a);

printf("a2 = %#o\n",a);

//%#+对应的进制字母,就可以保留进制的前缀符号了

//这里显而易见都能看懂,就不过多撰述了

printf("b1 = %x\n",b);

printf("b2 = %#x\n",b);

return 0;

}

5、客套话

倘如各位看官觉着本文的菜,足以开胃,还请动动金手指,一件三连吸引更多客官,谢谢您勒!

精彩内容

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: