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()例子:

 1 # include <stdio.h>
 2
 3 int main(void)
 4 {
 5     int i;
 6     char ch;
 7
 8     scanf("%d", &i);
 9     printf("i = %d\n", i);
10     scanf("%c", &ch);
11     printf("ch = %c\n", ch);
12
13     return 0;
14 }
 1 # include <stdio.h>
 2
 3 int main(void)
 4 {
 5     int i, j;
 6
 7     scanf("%d %d", &i, &j);
 8     printf("i = %d, j = %d\n", i, j);
 9
10     return 0;
11 }

scanf()含有非输入控制符的用法:

 1 # include <stdio.h>
 2
 3 int main(void)
 4 {
 5     int i;
 6
 7     scanf("m%d", &i); //m123 正确的输入  123是非法的输入
 8     printf("i = %d\n", i);
 9
10     return 0;
11 }

一次给多个变量键盘赋值的方法:

 1 # include <stdio.h>
 2
 3 int main(void)
 4 {
 5     int i, j, k;
 6
 7     printf("请输入三个值,中间以逗号分隔: ");
 8     scanf("%d,%d,%d", &i, &j, &k);
 9     printf("i = %d, j = %d, k = %d\n", i, j, k);
10
11     return 0;
12 }

scanf()对用户非法操作的处理:

 1 /*
 2     2015年2月5日17:33:11
 3     目的:scanf对用户非法输入的控制
 4 */
 5 # include <stdio.h>
 6
 7 int main(void)
 8 {
 9     int i;
10     char ch;
11
12     scanf("%d", &i);
13     printf("i = %d\n", i);
14
15     //.......
16     while ( (ch=getchar()) != ‘\n‘)
17         continue;
18     int j;
19     scanf("%d", &j);
20     printf("j = %d\n", j);
21
22     return 0;
23 }
24
25 /*
26     输入123m 回车 345
27     输出:
28 --------------------
29 请输入2个数,中间用逗号间隔:
30 123,333m
31 i = 123 j = 333
32 请再输入2个数,中间用逗号间隔:
33 21,78
34 j = 333 l = 78
35 --------------------
36
37   注意:
38   1. scanf前用printf提示
39   2. 333m后面多一个m,但是由于中间加了while语句,不影响后面输入
40 */

取余运算符与取模运算符
除法/的运算结果和运算对象的数据类型有关,两个都是int则商是int。被除数和除数有一个是浮点型则商也是浮点型

取余%运算符的运算对象必须是整数,结果是余数,其符号和被除数的符号相同

一元二次方程的求解:

 1 # include <stdio.h>
 2 # include <math.h>
 3
 4 int main(void)
 5 {
 6     //把三个系数保存到计算机中
 7     int a = 1;  //=不表示相等,表示赋值
 8     int b = 5;
 9     int c = 6;
10     double delta; //delt存放的是 b*b - 4*a*c
11     double x1; //存放一元二次方程的其中一个解
12     double x2; //存放一元二次方程的其中一个解
13
14     delta = b*b - 4*a*c;
15
16     if (delta > 0)
17     {
18         x1 = (-b + sqrt(delta)) / (2*a);
19         x2 = (-b - sqrt(delta)) / (2*a);
20         printf("该一元二次方程有两个解, x1 = %f, x2 = %f\n", x1, x2);
21     }
22     else if (delta == 0)
23     {
24         x1 = (-b) / (2*a);
25         x2 = x1;  //右边赋给左边
26         printf("该一元二次方程有一个唯一解, x1 = x2 = %f\n", x1);
27     }
28     else
29     {
30         printf("无解\n");
31     }
32
33     return 0;
34 }
时间: 2024-10-24 05:07:29

printf()_scanf()_取余运算符与取模运算符的相关文章

leecode---07---数字整除取余操作,取余整除---翻转一个整数复件

https://leetcode.com/problems/reverse-integer/description/ 题意 将一个整数进行翻转. Example 1: Input: 123 Output: 321 Example 2: Input: -123 Output: -321 Example 3: Input: 120 Output: 21 分析 给一个整数,将这个整数进行翻转,从后往前每一位先取余出来. 最后要判断是否越界处理. 代码 class Solution { public i

ACM273 给你一个乱序的字符串,里面包含有小写字母(a--z)以及一些特殊符号,请你找出所给字符串里面所有的小写字母的个数, 拿这个数对26取余,输出取余后的数字在子母表中对应的小写字母(0对应z

#include<stdio.h>              //a=97   z=12 #include<string.h> int main() { int n; char m[205]; int i,j; int a; scanf("%d",&n); getchar(); while(n--) { a=0; gets(m); j=strlen(m); for(i=0;i<j;i++) { if(m[i]>=97&&m[i

Java之取余操作 &quot;%&quot;

取模运算与取余运算两个概念有重叠的部分但又不完全一致.主要的区别在于对负整数进行除法运算时操作不同. 对于整形数a,b来说,取模运算或者求余运算的方法都是: 1.求 整数商 c = a / b: 2.计算模或者余数 r = a - c* b . 取模运算和取余运算在第一步不同: 取余运算在取c值时,向0方向舍入:而取模运算在取c值时,是向负无穷方向舍入 各个环境下运算符%的含义不同,C/C++,Java为取余,python为取模 Java取余运算规则如下: a%b = a - (a/b)*b 原

POJ 1745 线性和差取余判断

POJ 1745 线性和差取余判断 题目大意:每个数都必须取到,相加或相减去,问所有的方案最后的得数中有没有一个方案可以整除k 这个题目的难点在于dp数组的安排上面 其实也就是手动模仿了一下 比如 一个数,不用说,第一个数之前不用加符号就是本身,那么本身直接对K取余, 那么取17的时候有个余数为2----基础然后来了一个5,(2 + 5)对7取余为0----层层延伸 (2 - 5)对7取余为4(将取余的负数变正) 那么前2个数有余数0和4再来一个-21(0+21)对7取余为0(0-21)对7取余

java中的基本运算符、取余、逻辑运算符、逻辑运算符、位运算符、移位运算符

注意事项: 常量在编译的时候会赋值,变量在运行的时候才在内存中分配空间赋值. 赋值运算符 += -+ *+ %= \= 在java编译器会进行强制类型转换 取余: 在java中做取余运算的是时候,结果的正负号是取决于被除数. 逻辑运算符&且 |或 !非 ^异或 &&短路与 ||短路或 位运算符:直接操作二进制位的. & (与) 6 & 3 = 2 0000 0110 可以把1看成true & 0000 0011 0看成false --------------

模板 快速幂|取余

前置知识 (1)如果将 aa 自乘一次,就会变成 a^2a2 .再把 a^2a2 自乘一次就会变成 a^4a4 .然后是 a^8a8…… 自乘 nn 次的结果是 a^{2^{n}}a2n .对吧…… (2)a^xa^y = a^{x+y}axay=ax+y,这个容易. (3)将 bb 转化为二进制观看一下: 比如 b = (11)_{10}b=(11)10? 就是 (1011)_{2}(1011)2? .从左到右,这些 11 分别代表十进制的 8,2,18,2,1.可以说 a^{11} = a^

2014年百度之星程序设计大赛 - 初赛(第一轮) hdu Grids (卡特兰数 大数除法取余 扩展gcd)

题目链接 分析:打表以后就能发现时卡特兰数, 但是有除法取余. f[i] = f[i-1]*(4*i - 2)/(i+1); 看了一下网上的题解,照着题解写了下面的代码,不过还是不明白,为什么用扩展gcd, 不是用逆元吗.. 网上还有别人的解释,没看懂,贴一下: (a / b) % m = ( a % (m*b)) / b 笔者注:鉴于ACM题目特别喜欢M=1000000007,为质数: 当gcd(b,m) = 1, 有性质: (a/b)%m = (a*b^-1)%m, 其中b^-1是b模m的逆

【分治】取余运算

问题 E: [分治]取余运算 时间限制: 1 Sec  内存限制: 128 MB提交: 16  解决: 6[提交][状态][讨论版] 题目描述 输入b,p,k的值,求bp mod k的值.其中b,p,k*k为长整型数. 输入 三个整数,分别为b,p,k的值 输出 bp mod k 样例输入 2 10 9 样例输出 2^10 mod 9=7 提示 解题思路:分治,顾名思义,把一个大问题分解为多个小问题. 这里有一个公式,利用这个公式通过递归求得. 代码: #include <iostream>

HDU1061_Rightmost Digit【快速幂取余】

Rightmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 33161    Accepted Submission(s): 12696 Problem Description Given a positive integer N, you should output the most right digit of