初识c语言及数据类型

这篇文章主要是对c语言前面两章易错点总结和补充,主要介绍:

1.输出函数puts

2.单(双,三)目运算符的定义

3.数据类型(int float等)

4.数据转换例题

————————————————————————————————————

1.函数puts

(1)语法形式
puts("语句");
(2)puts的作用:

puts函数可以按顺序输出作为实参的字符串(即" "中的内容),并在结尾换行。其实,puts和printf函数很相似,唯一不同的是puts会自动换行,不需要 \n 换行符,但是相比printf,puts函数不能进行变量的运算

可以看下面一段代码简单理解

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
	int a, b;
	puts("输入两个整数。");
	printf("整数1:"); scanf("%d", &a);
	printf("整数2:"); scanf("%d", &b);
	printf("a+b=%d", a + b);
	return 0;
}

puts函数不能进行计算,我们就用printf进行加法运算,可见上面的代码没有用换行符,而puts自动实现了下面每个输出的换行,看下面的结果在这里插入图片描述
*在需要换行且不用格式化输出的时候,就可以使用puts函数来代替printf函数
*像"ABC","输入某数"这样用双引号括起来的一连串连续排列的文字,称为字符串常量

2.单(双,三)目运算符的定义

(1)需要两个操作数的运算符称为双目运算符(如a+b中"+"连接了两个操作数ab,因此称为双目)
(2)只要一个操作数的是单目运算符
单目+运算符  +a 就是a的值
单目-运算符  -a 对a进行符号取反

单目-运算符举例

#include <stdio.h>
int main() {
	int a = -1;
	printf("%d\n", -a);
	return 0;
}

运行结果为1
在这里插入图片描述

(3)三目运算符

需要三个操作数,例如条件运算符

表达式1?表达式2:表达式3

具体说明在往期 ’ 各种符号 ’ 中已经提到,这里不过多赘述

3.数据类型(int float等)

(1)类型特征介绍

int(整型)特征

#include <stdio.h>
int main() {
	int a=3.5;
	printf("%d\n", a);
	return 0;
}

执行结果:在这里插入图片描述
上图发现a(3.5)小数点后面的数没了,只留下数值的整数部分——这就是int类型的特点

float,double型(浮点型),这类数据类型能保留小数点后面的数,其中float(单精度浮点型)只能保留小数点后6位,double(双精度浮点型)能保留小数点后12位

%5d ——>执行结果的数至少有五位十进制整数(默认不够的用空格补上
%5.2f ——>输出至少五位数,且小数点后只显示两位
在这里插入图片描述

%05.2f ——>0表示数值前面有空余,用0补齐
在这里插入图片描述

注:如果设定了 ” - “,数据会左对齐显示,未设定则会右对齐显示
在这里插入图片描述

(2)类型转换

在c语言中除法想要结果有小数点,计算过程中至少要有一个小数
在这里插入图片描述
注:%d——>显示int(整数)
%f——>显示浮点数(小数)

假设初始化int a; 想要把整型a转为浮点数——>(double)a,这样a就变为了小数

int a,b;
scanf("%d %d",&a,&b);
printf("%f",((float)a+b)/2);

下面是执行结果在这里插入图片描述
因为a转化为了小数(浮点型),因此结果为小数

注意格式字符与后面结果类型对齐

以下是各种类型举例:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
	int n1, n2;
	double d1, d2;
	n1 = 5 / 2;    //n1<--2
	n2 = 5 / 2.0;  //n2<--2.5(赋值给n2时因为n2是整型,舍弃小数部分)
	d1 = 5 / 2;   //d1<--2(因为5和2都为整数)
	d2 = 5.0 / 2; //d2<--2.5
	printf("%d\n", n1);
	printf("%d\n", n2);
	printf("%f\n", d1);
	printf("%f\n", d2);
	return 0;
}

执行结果如下图在这里插入图片描述
补充想要在printf中输入%,要写成%%

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
	int a = 4;
	int b = 3;
	printf("a%%b=%d\n", a%b);
	return 0;
}

执行结果如下
在这里插入图片描述

以上关于知识点的说明就结束了

4.例题

以下是我碰到过的一道题目,就运用了类型转换的思想,分享给大家

某人正在寄快递,他了解到快递在 1kg 以内的按起步价 20 元计算,
超出部分按每 kg 1元计算,不足 1kg 部分按 1kg计算。
如果加急的话要额外付五元,请问这个人总共要支付多少快递费

解决方法:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
	float a;
	char b;
	int money = 0;
	scanf("%f %c", &a, &b);
	if (a <= 1)
	{
		money = 20;
	}
	else
	{
		if (a == (int)a)  //判断a是否为整数
		{
			money = 20 + (a - 1);  //a-1是超出部分的价钱
		}
		else  //不是整数把a取整
		{
			money = 20 + (int)a;  //(int)a是超出的价钱
		}
	}
	switch(b)   //判断是否加急
		case 'y':
			money += 5;
			
			printf("%d", money);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值