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 
 3 int main(void)
 4 {
 5     printf("%d %d %d %d %d %d %d\n", 3%3, 13%3, 13%-3, -13%3, -13%-3, -13%23, 3%5);
 6 
 7     return 0;
 8 }
 9 
10 /*
11 2015年2月5日20:38:30
12 取余%运算符的运算对象必须是整数,结果是余数,其符号
13 和被除数的符号相同
14 输出结果:
15 -------------------
16 0 1 1 -1 -1 -13 3
17 -------------------
18 */

一元二次方程的求解:

 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 }

 

posted @ 2015-05-28 16:33  moon1992  阅读(907)  评论(0编辑  收藏  举报