printf()_scanf()_取余运算符与取模运算符
基本的输入和输出函数的用法
printf();四种用法
1.printf("字符串\n");
2.printf("输出控制符",输出参数);
3.printf("输出控制符1 输出控制符2 。。。",输出参数1,输出参数2);
4.printf("输出控制符 非输出控制符",输出参数);
输出控制符有如下:
%d
%ld
%f
%lf
%x(or %X or %#X or %#x) 最好用%#X 输出如0X2F
%o
%s
scanf();两种用法:
1. scanf("输入控制符",输入参数);
scanf("%d",&i); //&是取地址符,注意%d后面不要加 \n
2. scanf("非输入控制符 输入控制符",输入参数);
非输入控制符必须原样输入
scanf()和printf()例子:
# include <stdio.h> int main(void)
{
int i;
char ch; scanf("%d", &i);
printf("i = %d\n", i);
scanf("%c", &ch);
printf("ch = %c\n", ch); return ;
}
# include <stdio.h> int main(void)
{
int i, j; scanf("%d %d", &i, &j);
printf("i = %d, j = %d\n", i, j); return ;
}
scanf()含有非输入控制符的用法:
# include <stdio.h> int main(void)
{
int i; scanf("m%d", &i); //m123 正确的输入 123是非法的输入
printf("i = %d\n", i); return ;
}
一次给多个变量键盘赋值的方法:
# include <stdio.h> int main(void)
{
int i, j, k; printf("请输入三个值,中间以逗号分隔: ");
scanf("%d,%d,%d", &i, &j, &k);
printf("i = %d, j = %d, k = %d\n", i, j, k); return ;
}
scanf()对用户非法操作的处理:
/*
2015年2月5日17:33:11
目的:scanf对用户非法输入的控制
*/
# include <stdio.h> int main(void)
{
int i;
char ch; scanf("%d", &i);
printf("i = %d\n", i); //.......
while ( (ch=getchar()) != '\n')
continue;
int j;
scanf("%d", &j);
printf("j = %d\n", j); return ;
} /*
输入123m 回车 345
输出:
--------------------
请输入2个数,中间用逗号间隔:
123,333m
i = 123 j = 333
请再输入2个数,中间用逗号间隔:
21,78
j = 333 l = 78
-------------------- 注意:
1. scanf前用printf提示
2. 333m后面多一个m,但是由于中间加了while语句,不影响后面输入
*/
取余运算符与取模运算符
除法/的运算结果和运算对象的数据类型有关,两个都是int则商是int。被除数和除数有一个是浮点型则商也是浮点型
取余%运算符的运算对象必须是整数,结果是余数,其符号和被除数的符号相同
测试取余运算符:
#include <stdio.h> int main(void)
{
printf("%d %d %d %d %d %d %d\n", %, %, %-, -%, -%-, -%, %); return ;
} /*
2015年2月5日20:38:30
取余%运算符的运算对象必须是整数,结果是余数,其符号
和被除数的符号相同
输出结果:
-------------------
0 1 1 -1 -1 -13 3
-------------------
*/
一元二次方程的求解:
# include <stdio.h>
# include <math.h> int main(void)
{
//把三个系数保存到计算机中
int a = ; //=不表示相等,表示赋值
int b = ;
int c = ;
double delta; //delt存放的是 b*b - 4*a*c
double x1; //存放一元二次方程的其中一个解
double x2; //存放一元二次方程的其中一个解 delta = b*b - *a*c; if (delta > )
{
x1 = (-b + sqrt(delta)) / (*a);
x2 = (-b - sqrt(delta)) / (*a);
printf("该一元二次方程有两个解, x1 = %f, x2 = %f\n", x1, x2);
}
else if (delta == )
{
x1 = (-b) / (*a);
x2 = x1; //右边赋给左边
printf("该一元二次方程有一个唯一解, x1 = x2 = %f\n", x1);
}
else
{
printf("无解\n");
} return ;
}
printf()_scanf()_取余运算符与取模运算符的更多相关文章
- java 取模运算% 实则取余 简述 例子 应用在数据库分库分表
java 取模运算% 实则取余 简述 例子 应用在数据库分库分表 取模运算 求模运算与求余运算不同.“模”是“Mod”的音译,模运算多应用于程序编写中. Mod的含义为求余.模运算在数论和程序设计中 ...
- 计算机二级-C语言-程序修改题-190123记录-对整数进行取余和除以操作。
//函数fun功能:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中.高位仍在高位,低位仍在低位. //重难点:思路:因为不是字符串,所以可以把问题变成整数的操作,采用取余和除的操作.对整 ...
- Java之取余操作 "%"
取模运算与取余运算两个概念有重叠的部分但又不完全一致.主要的区别在于对负整数进行除法运算时操作不同. 对于整形数a,b来说,取模运算或者求余运算的方法都是: 1.求 整数商 c = a / b: 2. ...
- POJ 1745 线性和差取余判断
POJ 1745 线性和差取余判断 题目大意:每个数都必须取到,相加或相减去,问所有的方案最后的得数中有没有一个方案可以整除k 这个题目的难点在于dp数组的安排上面 其实也就是手动模仿了一下 比如 一 ...
- C++ int型负数除法取余问题
1:关于除法,不管是正数还是负数都是向0取整的:10/4 = 2,10/(-4) = -2 2:负数取余,通过取模来判定 |小| % |大| = |小| 符号同前 |大| % |小| = |余| ...
- 大数计算_BigNum优化_加减乘除乘方取余_带注释_数组
#include <iostream> #include <algorithm> #include <cstring> #include <cstdlib&g ...
- 算数运算符: + - * / //(地板除) %(取余) **(幂运算) / 比较运算符 > < >= <= == !=
# ### python运算符 #(1) 算数运算符: + - * / //(地板除) %(取余) **(幂运算) var1 = 5 var2 = 8 # +res = var1 + var2 pri ...
- python 运算符 取余 取商 in not in
#运算符sum = 9//2 #取商print(sum) sum = 9%2 #取余print(sum) #inname1 = '小林'name2 = '林倩'if '林' in name1: pri ...
- 运算符:三目运算符,运算符优先级,sizeof,自增自减,取余
一://---------运算符-----------// 1.运算符是告诉编译程序执行特定算术或逻辑操作的符号. 2.按照功能划分: 算术运算符. 关系运算符与逻辑运算符.按位运算符. 3.运算符根 ...
随机推荐
- Highcharts 时间序列,可缩放的图表;Highcharts X 轴翻转曲线图;Highcharts 带标记曲线图
Highcharts 时间序列,可缩放的图表 配置 图表 配置可缩放图表. chart.zoomType 指定了用户可以拖放的尺寸,用户可以通过拖动鼠标来放大,可能值是x,y或xy: var char ...
- JavaScript中的call、apply、bind是怎么回事?
在JS中,这三者都是用来改变函数的this对象的指向的,他们有什么样的区别呢.在说区别之前还是先总结一下三者的相似之处:1.都是用来改变函数的this对象的指向的.2.第一个参数都是this要指向的对 ...
- [WinForm]Dundas Chart控件学习(附源码)
1.Dundas公司简介 加拿大的一家公司,专业做图表展现的,很牛,据说现在被Microsoft收购了.官网地址:http://www.dundas.com/ 2.Chart基本要素 3.最简单的柱状 ...
- Java--------------Windows下Redis的安装使用
摘要 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted s ...
- js Worker 线程
在平时的运行的javascript脚本都在主线程中执行,如果当前脚本包含复杂的.耗时的代码.那么JavaScript脚本的执行将会被阻塞,甚至整个刘看齐都是提示失去响应. 例子: 假设程序需要计算.收 ...
- RabbitMQ(6) 集群部署
单节点部署 rabbitmq单节点部署比较简单,可以使用apt-get等工具快速安装部署. wget -O- https://www.rabbitmq.com/rabbitmq-release-sig ...
- PostgreSQL CPU满(100%)性能分析及优化(转)
PostgreSQL CPU满(100%)性能分析及优化 转自:https://help.aliyun.com/knowledge_detail/43562.html 在数据库运维当中,一个DB ...
- Android支持Split Apks后,如何获得指定包名下的所有类
从Android5.0以后,支持多个apk动态部署,这导致以前通过单一apk获取包路径下的所有类的方法失效,不过稍微修改一下原先的代码就可以,代码如下 public static final List ...
- iad 集成三两事
1. 好像是随着ios8的beta开始. iad 已经发生了一些变化. 比如找不到enable iad network 的按钮了. 貌似是不需要手动去 enable 了. 只需要嵌入 iad fra ...
- wireshark的提示
内容:12个wrieshark的提示 1.[Packet size limited during capture] 在捕获数据包大小有限,即包没有抓全 2.[TCP previous segment ...