c语言(printf,scanf简单使用)

printf函数

研究一个函数: 1、百度 2、查看linux中文C手册 3、man手册(英文)

  • 头文件

#include

  • 函数原型

int printf(const char * format, …); 变参 函数

  • 函数作用

将指定格式的数据 输出 到 屏幕终端上(输出设备)

  • 函数参数

format----》指定格式

…---->参数不固定

指定格式—》也就是将数据 以什么样的方式 打印到屏幕上

%s 字符串格式

%d 整型 int

%c 字符型 char

%hd 短整型 short int

%hhd 字符型的ascii码 char 数据对应的ascii码 的值

%f 单精度浮点型(实型) float

%lf 双精度浮点型 double

%ld long int

%lld long long int

​ %x 十六进制

%#x 十六进制 并且 十六进制 的前缀 0x也会打印出来 #o 八进制

​ %#o 八进制 并且 八进制的前

缀0打印出来

%e 以科学计数法的方式将浮点数打印出来

%p 打印内存的地址

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

字段宽度

字段宽度其实就是指输出的字符所占的终端的列数,用户可以指定宽度,比如用户指定宽度为10,但是实际要输出的字符只有4个,那剩余的列数为6列,则这6列用空格补齐。注意:如果用户没有明确指定左对齐,则默认采用右对齐输出。如下:

int a=10,b=30;
float f = 3.141566;
printf("a:%#x\n",a); //结果为0xa
printf("b:%10#x\n", x); //结果为 0x14
printf("f=%f\n", f); //结果为3.141566
printf("f=%.2f\n", f); //结果为3.14
//输出多个数据
printf("a:%d, b:%d\n", a, b);
printf("a:%d, b:%d, f:%f\n", a, b, f);

scanf函数

  • 头文件

    #include

  • 函数原型

    int scanf(const char * format, …);

  • 函数作用

从屏幕终端上 获取 指定 格式的数据,存储 到 变量的内存空间上

  • 函数参数

format----》指定格式

  • 函数返回值

    成功

    返回 获取 到的变量的个数 2

    失败 0

int a1=0,a2=0;
//scanf("%d:%d",&a1,&a2); //输入的时候也必须按照这种格式输入,比如12:30
scanf("%d%d",&a1,&a2);
printf("a1:%d a2:%d\n",a1,a2);
//此时输入缓冲区中还存在换行符,而%c 不会自动跳过换行符或者空格,所以获取到的字符就是换行符
char ch;
scanf("%c",&ch);
printf("%hhd %c\n",ch,ch); //ch == '\n' 10
//%d会自动默认跳过换行符
int val=0;
scanf("%d",&val);
printf("%d\n",val);

练习

在程序中使用数学的计算函数
#include <stdio.h>
//如果要在程序中使用数学的计算函数 
#include <math.h>
int main(void)
{
	//四舍五入
	printf("%d.2f,%d.2f,%d.2f\n",round(3.145),ceil(3.145),floor(3.145)); 
	printf("%d,%d,%d\n",(int)round(3.145),(int)ceil(3.145),(int)floor(3.145)); 
	return 0;
	
}

在这里插入图片描述

#include <stdio.h>

int main(void)
{
	int a=10;
	float b=10.0f;
	double c=10.0;
	char d ='A' ;
	char *e ="hallo";
	printf("%d,%f,%lf,%c,%s\n",a,b,c,d,e);
	return 0;
 } 

在这里插入图片描述

#include <stdio.h>

int main(void)
{
	int a=10;
	float b=10.0f;
	double c=10.0;
	char d ='A' ;
	char *e ="hallo";
	printf("%d,%f,%lf,%c,%s\n",a,b,c,d,e);
	
	printf("请输入:\n");
	int d1;
	char c1;
	double f1;
	scanf("%d,%c,%lf",&d1,&c1,&f1);
	printf("%d,%c,%f",d1,c1,f1);
	return 0;
 } 

在这里插入图片描述

复杂数据格式
/*
复杂数据格式 
*/
#include <stdio.h>

int main(void)
{
    int num;
    long lnum;
    printf("请输入连续的两个整数:\n");  // 将 prf 改为 printf ,并去除逗号后的空格
    scanf("%d,%ld", &num, &lnum);  // 去除逗号后的空格
    printf("int-八进制:%o,int- 十进制:%d,int- 十六进制:%x,int-十进制限制列数:%5d\n", num, num, num, num);
    printf("long-八进制:%lo,long- 十进制:%ld,long- 十六进制:%lx,long-十进制限制列数:%5ld\n", lnum, lnum, lnum, lnum);  // 为 long 类型的输出添加正确的格式说明符
    return 0;
}

在这里插入图片描述

根据三个园的半径,求周长(要求:保留2位小数,并且输出的时候右对齐)
#include <stdio.h>
//定义PI
#define PI 3.1415926

int main(void)
{
    //需求:根据三个园的半径,求周长(要求:保留2位小数,并且输出的时候右对齐) 
	//申明求量,用来存储圆的半径和周长
	double r1 = 1.53,r2 = 21.83,r3=123.71;
	double s1,s2,s3; 
	//计算周长
	s1 =2*PI*r1; 
	s2 =2*PI*r2; 
	s3 =2*PI*r3;  
	//打印周长至控制台 
	printf("圆的周长:\n%7.2f\n%7.2f\n%7.2f\n", s1,s2,s3); 
    return 0;
}

在这里插入图片描述

输入半径求圆周长
#include <stdio.h>

#define PI 3.14159  // 定义圆周率

int main() {
    float radius1, radius2, radius3;
    float circumference1, circumference2, circumference3;

    printf("请输入第一个圆的半径:");
    scanf("%f", &radius1);

    printf("请输入第二个圆的半径:");
    scanf("%f", &radius2);

    printf("请输入第三个圆的半径:");
    scanf("%f", &radius3);

    circumference1 = 2 * PI * radius1;
    circumference2 = 2 * PI * radius2;
    circumference3 = 2 * PI * radius3;

    printf("第一个圆的周长:%.2f\n", circumference1);
    printf("第二个圆的周长:%.2f\n", circumference2);
    printf("第三个圆的周长:%.2f\n", circumference3);

    return 0;
}

us1;
circumference2 = 2 * PI * radius2;
circumference3 = 2 * PI * radius3;

printf("第一个圆的周长:%.2f\n", circumference1);
printf("第二个圆的周长:%.2f\n", circumference2);
printf("第三个圆的周长:%.2f\n", circumference3);

return 0;

}


![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1f4a74e22f2141268650a65b16c43fd4.png#pic_center)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值