C语言中一个简单的球3个数最大数的程序中,最后一步:printf(''max=%d\n'',max);怎么理解
可以参考下面的代码:
#include
void main( )
{
int n, i, num , max ;
scanf("%d", &n);
scanf("%d", &num);
max=num;
for(i = 1; i < n; i++)
{
scanf("%d", &num);
if(max < num)
max = num;
}
printf("%d
", max);
}
扩展资料:
C语言函数
C语言isprint()函数:判断一个字符是否是可打印字符
C语言islower()函数:判断一个字符是否是小写字母
C语言ldexp()函数:返回x乘以2的exponent次方(次幂)的值
C语言labs()函数:求整数的绝对值(针对long类型)
C语言isgraph()函数:判断一个字符是否是图形字符
C语言floor()函数:求不大于x的最大整数(向下取整)
C语言fabs()函数:求双精度浮点数的绝对值
C语言abs()函数:求整数的绝对值
参考资料来源:百度百科-c语言
程序如下:
#include
int main()
{
int a,b,c,max;
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(b>a) max=b;
if(b>c) max=b;
else if (c>a) max=c;
printf("max=%d
",max);
return 0;
}
基本思想:依次选出数组最小的数放到数组的前面。首先从数组的第二个元素开始往后遍历,找出最小的数放到第一个位置。再从剩下数组中找出最小的数放到第二个位置。以此类推,直到数组有序
扩展资料:
C语言经典排序算法
一、交换排序
1、冒泡排序
基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。
2、快速排序
基本思想:选取一个基准元素,通常为数组最后一个元素(或者第一个元素)。从前向后遍历数组,当遇到小于基准元素的元素时,把它和左边第一个大于基准元素的元素进行交换。在利用分治策略从已经分好的两组中分别进行以上步骤,直到排序完成。下图表示了这个过程。
二、插入排序
1、希尔(shell)排序
基本思想为在直接插入排序的思想下设置一个最小增量dk,刚开始dk设置为n/2。进行插入排序,随后再让dk=dk/2,再进行插入排序,直到dk为1时完成最后一次插入排序,此时数组完成排序。
三、选择排序
1、堆(Heap)排序
基本思想:先把数组构造成一个大顶堆(父亲节点大于其子节点),然后把堆顶(数组最大值,数组第一个元素)和数组最后一个元素交换,这样就把最大值放到了数组最后边。
把数组长度n-1,再进行构造堆,把剩余的第二大值放到堆顶,输出堆顶(放到剩余未排序数组最后面)。依次类推,直至数组排序完成。
四、归并排序
基本思想:归并算法应用到分治策略,简单说就是把一个答问题分解成易于解决的小问题后一个个解决,最后在把小问题的一步步合并成总问题的解。这里的排序应用递归来把数组分解成一个个小数组,直到小数组的数位有序,在把有序的小数组两两合并而成有序的大数组。
参考资料来源:百度百科-C语言
printf目录[隐藏]
功 能:
用 法:
程序例:
printf 命令
[编辑本段]功 能:
产生格式化输出的函数
[编辑本段]用 法:
int printf(const char *format,[argument]);
format 参数输出的格式,定义格式为:
%[flags][width][.perc] [F|N|h|l]type
规定数据输出方式,具体如下:
1.type 含义如下:
d 有符号10进制整数
i 有符号10进制整数
o 有符号8进制整数
u 无符号10进制整数
x 无符号的16进制数字,并以小写abcdef表示
X 无符号的16进制数字,并以大写ABCDEF表示
F/f 浮点数
E/e 用科学表示格式的浮点数
g 使用%f和%e表示中的总的位数表示最短的来表示浮点数
G 同g格式,但表示为指数
c 单个字符
s 字符串
% 显示百分号本身
p 显示一个指针,near指针表示为:XXXX
far 指针表示为:XXXX:YYYY
n 相连参量应是一个指针,其中存放已写字符的个数
2.flags 规定输出格式,取值和含义如下:
无 右对齐,左边填充0和空格
- 左对齐,右边填充空格
+ 在数字前增加符号 + 或 -
一个空格 只对负数显示符号
# 当type=c,s,d,i,u时没有影响
type=o,x,X时,分别在数值前增加'0',"0x","0X"
type=e,E,f时,总是使用小数点
type=g,G时,除了数值为0外总是显示小数点
3.width 用于控制显示数值的宽度,取值和含义如下n(n=1,2,3...) 宽度至少为n位,不够以空格填充
0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充
4.prec 用于控制小数点后面的位数,取值和含义如下:
无 按缺省精度显示
0 当type=d,i,o,u,x时,没有影响
当type=e,E,f时,不显示小数点 n(n=1,2,3...)
当type=e,E,f时表示的最大小数位数
当type=其他,表示显示的最大宽度
5.F|N|h|l 表示指针是否是远指针或整数是否是长整数
F 远指针
n 近指针
h短整数或单精度浮点数
l 长整数或双精度浮点数
1.一般格式
printf(格式控制,输出表列)
例如:printf("i=%d,ch=%c\n",i,ch);
说明:
(1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:
①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。
②普通字符,即需要原样输出的字符。
(2)“输出表列”是需要输出的一些数据,可以是表达式
(3)printf函数的一般形式可以表示为
printf(参数1,参数2,……,参数n)
功能是将参数2~参数n按参数1给定的格式输出
2.格式字符(9种)
(1)d(或i)格式符。用来输出十进制整数,有以下几种用法:
①%d,按整型数据的实际长度输出。
②%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
③%ld(%mld 也可),输出长整型数据。
例如:long a=123456;
printf("%ld",a);
(2)o格式符,以八进制数形式输出整数。格式:%o,%mo,%lo,%mlo都可。
(3)x(或X)格式符,以十六进制数形式输出整数。格式:%x,%mx,%lx,%mlx都可。
(4)u格式符,用来输出unsigned型数据,即无符号数,以十进制数形式输出。格式:%u,%mu,%lu都可。
参见:li4-3.c/*无符号数据的输出*/
(5)c格式符,用来输出一个字符。格式:%c,%mc都可。
(6)s格式符,用来输出一个字符串。格式:%s,%ms,%-ms,%m.ns,%-m.ns都可。
参见:li4-5.c /*字符串的输出*/
(7)f格式符,用来输出实数(包括单、双精度),以小数形式输出。格式:%f,%m.nf,%-m.nf都可。
注意:单精度实数的有效位数一般为7位,双精度为16位。
参见:li4-6.c/*输出单精度实数时的有效位数*/
li4-7.c/*输出双精度实数时的有效位数*/
li4-8.c/*输出实数时指定小数位数*/
(8)e(或E)格式符,以指数形式输出实数。格式:%e,%m.ne,%-m.ne都可。
(9)g(或G)格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种)。
3.说明
(1)除了X、E、G(用大写字母表示)外,其他格式字符必须用小写字母;
(2)“格式控制”字符串内可以包含转义字符;
(3)如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示,如:
printf("%f%%",1.0/3);
(4)格式字符表参见下表
表4.1 printf格式字符
格式字符 说 明
d,i 以带符号的十进制形式输出整数(正数不输出符号)
o 以八进制无符号形式输出整数(不输出前导符0)
x,X 以十六进制无符号形式输出整数(不输出前导符0x),用x则输出十六进制数的a~f时以小写形式输出,用X时,则以大写字母输出
u 以无符号十进制形式输出整数
c 以字符形式输出,只输出一个字符
s 输出字符串
f 以小数形式输出单、双精度数,隐含输出6位小数
e,E 以指数形式输出实数
g,G 选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0
表4.2 printf的附加格式说明字符
字符
说明
字母l
用于长整型整数,可加在格式符d、o、x、u前面
m(代表一个正整数)
数据最小宽度
n(代表一个正整数)
对实数,表示输出n位小数;对字符串,表示截取的字符个数
-
输出的数字或字符在域内向左靠
[编辑本段]程序例:
#include <stdio.h>
int main()
{
printf("Hello,world\n");
while(1);
}
#include<stdio.h>
int main()
{
int i = 1, j =2;
printf("%d %d\n",i,j);
while(1);
}
[编辑本段]printf 命令
用途
写格式化输出。
语法
printf Format [ Argument ... ]
描述
printf 命令转换、格式化并写 Argument 参数到标准输出。Argument 参数是由 Format 参数控制格式化的。格式化输出行不能超出 LINE_MAX 字节长度。
下列环境变量影响 printf 命令的执行:
LANG 在 LC_ALL 和相应的环境变量(以 LC_ 开头)没有指定语言环境时,确定语言环境编目使用的语言环境。
LC_ALL 确定用于覆盖由 LANG 或其它任何 LC_ 环境变量设置的任何语言环境编目值的语言环境。
LC_CTYPE 确定把文本字节数据顺序解释为字符的语言环境;例如,单一字节对应多字节字符的参数。
LC_MESSAGES 确定写消息使用的语言。
LC_NUMERIC 确定数字格式编排的语言环境。此环境变量影响使用 e、E、f、g 和 G 转换字符编写的数字的格式。
Format 参数是包含三种对象类型的一个字符串:
* 无格式字符复制到输出流。
* 转换规范,每个规范导致在值参数列表中检索 0 个或更多个项。
* 以下转义序列。在复制到输出流时,这些序列导致它们的相关操作在有此功能的设备上显示:
\\ 反斜杠
\a 警告
\b 退格
\f 换页
\n 换行
\r 回车
\t 跳格
\v 垂直跳格
\ddd ddd 是 1、2 或 3 位八进制数字。这些转义序列作为由八进制数指定的具有数字值的字节显示。
Argument 参数是一个或多个字符串的列表,它在 Format 参数的控制下被写到标准输出。
Format 参数在必要的情况下会经常重新使用以满足 Argument 参数。将好像提供了空字符串 Argument 一样评估任何额外的 c 或者 s 转换规范;其它额外转换规范将好像提供了 0 Argument 一样评估。此处 Format 参数不包含转换规范仅出现 Argument 参数,结果是不确定的。
每个 Format 参数中的转换规范都具有如下顺序的语法:
1. % (百分号)。
2. 零或更多的选项,修改转换规范的含义。选项字符和它们的含义是:
- 转换结果在字段中左对齐。
+ 符号转换结果常以符号(+ 或者 -)开始。
空格 如果符号转换的第一个字符不是符号,结果的前缀将是空格。如果空格和 + 选项字符都显示,则忽略空格选项字符。
# 此选项指定值转换到备用格式。对于 c、d、i, u 和 s 转换,选项没有作用。对于 o 转换,它增加精度来强制结果的第一数字是 a、0(零)。对于 x 和 X 转换,非零结果分别具有 0x 或 0X 前缀。对于 e、E、 f、g 和 G 转换,结果通常包含基数字符,即使基数字符后没有数字。对于 g 和 G 转换,结尾零不象通常一样除去。
0 对于 d、i、o、 u、x、e、 E、f、g 和 G 转换,前导零(跟在符号或底数的后面)用于填充字段宽度,将不用空格填充。如果显示 0(零)和 -(减号)选项,0(零)选项被忽略。对于 d、i、o、u、x 和 X 转换,如果指定精度,0(零)选项将被忽略。
注:
其它转换,没有定义其行为。
3. 可选的指定最小值字段宽度的十进制数字字符串。如果转换值字符少于字段宽度,该字段将从左到右按指定的字段宽度填充。如果指定了左边调整选项,字段将在右边填充。如果转换结果宽于字段宽度,将扩展该字段以包含转换后的结果。不会发生截断。然而,小的精度可能导致在右边发生截断。
4. 可选的精度。精度是一个 .(点)后跟十进制数字字符串。如果没有给出精度,按 0(零)对待。精度指定:
* d、o、i、 u、x 或 X 转换的最少数字显示位数。
* e 和 f 转换的基数字符后的最少数字显示位数。
* g 转换的最大有效数字位数。
* s 转换中字符串的最大打印字节数目。
5. 指示要应用的转换类型的一个字符,例如:
% 不进行转换。打印一个 %(百分号)。
d, i 接受整数值并将它转换为有符号的十进制符号表示法。精度指定显示的最小数字位数。如果值转换后可以用更少的位数来表示,将使用前导零扩展。缺省精度是 1。精度为零的零值转换的结果是空字符串。用零作为前导字符来指定字段宽度,导致用前导零填充字段宽度值。
o 接受整数值并将它转换为有符号的八进制符号表示法。精度指定显示的最小数字位数。如果值转换后可以用更少的位数来表示,将使用前导零扩展。缺省精度是 1。精度为零的零值转换的结果是空字符串。用零作为前导字符来指定字段宽度,导致用前导零填充字段宽度值。不用八进制值表示字段宽度。
u 接受整数值并将它转换为无符号的十进制符号表示法。精度指定显示的最小数字位数。如果值转换后可以用更少的位数来表示,将使用前导零扩展。缺省精度是 1。精度为零的零值转换的结果是空字符串。用零作为前导字符来指定字段宽度,导致用前导零填充字段宽度值。
x, X 接受整数值并将它转换为十六进制符号表示法。字母 abcdef 用于 x 转换,字母 ABCDEF 用于 X 转换。精度指定显示的最小数字位数。如果值转换后可以用更少的位数来表示,将使用前导零扩展。缺省精度是 1。精度为零的零值转换的结果是空字符串。用零作为前导字符来指定字段宽度,导致用前导零填充字段宽度值。
f 接受浮点或者双精度值并将它转换为十进制符号表示法,格式为 [-] ddd.ddd。基数字符(在这里显示为十进制点)后的数字位数等于规定的精度。 LC_NUMERIC 语言环境编目确定在这个格式中使用的基数字符。如果不指定精度,则输出六个数字。如果精度是 0(零),将不显示基数字符。
e, E 接受浮点或者双精度值并将它转换为指数表示的形式 [-] d.dde{+|-}dd。在基数字符前有一个数字(在这里显示为十进制点),基数字符后的数字位数等于规定的精度。 LC_NUMERIC 语言环境编目确定在这个格式中使用的基数字符。如果不指定精度,则输出六个数字。如果精度是 0(零),将不显示基数字符。E 转换字符在指数前生成带 E 而不是带 e 的数字。指数通常至少包含两个数字。然而,如果要打印的指数值大于两个数字,必要时需要打印附加指数数字。
g、G 接受浮点和双精度值并转换为 f 或 e 转换字符的样式(或在 G 转换的情况下是 E),用精度指定有效数字的个数。尾零将从结果中除去。基数字符只有在其后是数字时显示。使用的样式取决于转换的值。样式 g 仅在转换的指数结果小于 -4,或大于或等于精度时使用。
c 接受值将其作为字符串并打印字符串中的第一个字符。
s 接受值将其作为字符串并打印字符串中的字符直到字符串结束或者达到精度指示的字符个数。如果没有指定精度,打印全部字符直到出现第一个空字符。
b 接受值将其作为字符串,可能包含反斜杠转义序列。打印来自转换字符串的字节直到字符串结束或者达到精度规范指示的字节数。如果没有指定精度,打印全部字节直到出现第一个空字符。
支持下列反斜杠转义序列:
* 先前列出的反斜杠转义序列在 Format 参数描述下。这些转义序列将被转换到它们表示的单个字符。
* \c(反斜杠 c)序列,它不显示并使 printf 命令忽略 Format 参数中的字符串参数包含的剩余的所有字符串,所有剩余的字符串参数和所有附加字符。
退出状态
该命令返回以下出口值:
0 成功完成。
>0 发生错误。
示例
1. 输入下列命令:
printf ("%5d%4d\n",1213,43);
产生下列输出:
_1213_ _43
三次使用 Format 参数打印所有给定字符串。0(零)由 printf 命令提供以满足最后的 %4d 转换规格。
2. 输入下列命令
printf ("%c %c\n",78,79);
产生下列输出:
N_O
文件
/usr/bin/printf 包含 printf 命令。
printf(''max=%d\n'',max);是输出max的意思
其中的%d是用来控制输出格式的,%d是输出 整数型 的格式控制符。
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%0 无符号以八进制表示的整数
%g 自动选择合适的表示法
\n 是换行
%d是打印整数,其对应值是逗号后的那个max参数
\n是打印换行
C语言中一个简单的球3个数最大数的程序中,最后一步:printf(''max=%d\\...
C语言中一个简单的球3个数最大数的程序中,最后一步:printf(''max=%d\\n'',max);怎么理解 尤其是%d\\n是什么意思,怎么理解,还有“%”号在c语言中加上一个字母是什么意思,怎么和数字换算?谢谢啦... 尤其是 %d\\n 是什么意思,怎么理解,还有“%”号在c语言中加上一个字母是什么意思,怎么和数字换算?谢谢...
网络语言中球是什么意思
在网络语言中,“球”简单来说就是指聚集在一起的人群、团体或社交圈。这个词汇源自英语“circle”,意思为“圈子”。当人们在网上或现实中做某些特定的事情时,就会形成类似于球的圈子。比如,踢足球、打篮球和玩桌球等等这些运动,都会有球队和球迷之间形成默契和协作的关系。除了用于表示聚集的社交圈外...
怎么用c语言编一个简单弹球问题
if(myball->cur_coor.y<=mybox.angle_coor[0].y ||myball->cur_coor.y>=mybox.angle_coor[6].y)dir.y=-1;if(myball->cur_coor.z<=mybox.angle_coor[0].z ||myball->cur_coor.z>=mybox.angle_coor[6].z)dir.z=-1;if(dir.x==-1 ||dir.y==-1 ||dir.z==-1){h...
c语言编写一个程序从键盘输入球的半径,求出球的面积并在屏幕上输出结果...
```c include <stdio.h> define PI 3.14159 int main(){ float radius;float area;printf("请输入球的半径:");scanf("%f", &radius);area = 4 * PI * radius * radius;printf("球的面积为:%f", area);return 0;} ```在这个程序中,我们使用了 `scanf` 函数从键盘输入球的半径,...
用c语言编程怎么求一个圆的体积?
C语言编程求圆球体积如下:include <stdio.h> define pi 3.1415926 int main(){ double r;printf("请输入球体的半径:");scanf("%lf",&r);printf("球体的表面积为:%.2lf\\n",4*pi*r*r);printf("球体的体积为:%.2lf\\n",4.0\/3*pi*r*r*r);return 0;...
求用C语言模拟简单台球运动的源代码,不需要图形化界面
这源代码应该有个桌面类(Table),球类(Sphere),游戏类等等。我用C++ pragma once (Table.h)endif \/\/ _MSC_VER > 1000 include "Base.h"define MESH_D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1)class CTable:public CBase { public:DWORD Render();CTable(LPDIRECT...
怎样用c语言编写一个程序,让皮球落地两次。
C语言代码如下:include<stdio.h> int main() { double d = 100; \/\/ 皮球在空中经过的距离,第一次落地时为100m double h = 50; \/\/ 皮球反弹的高度,第一次反弹后为50m int i, n;scanf("%d", &n);for (i = 2; i <= n; i++) { \/\/ 从第二次落地开始 d += h * 2; ...
c语言编写一个程序从键盘输入球的半径,求出球的面积并在屏幕上输出结果...
include<stdio.h> void main(){ double r,s;print("请输入球体半径:");scanf("%lf",&r);s=3.14*4*r*r;print("球体的表面积是:%lf",s);}
韩语胖玻璃球就一个是什么意思
韩语的标记方法分为汉字和韩文,汉字是表意文字,而韩文是音素文字,混用2种不同体系的文字.使用汉字的原因是长期和中国的语言接触缘故.在初期主要是单词的借用,后来中国的影响扩大,引入了整个汉字体系.一般认为是在公元4-6世纪左右韩语中开始大量使用汉字.由于长期和中国文化的接触,现代韩语中有60%左右的...
快乐的小气球中班语言教案
快乐的小气球中班语言教案1 教材分析: 《快乐的小气球》这个故事选自《幼儿教育》,该故事讲述了一只快乐的小气球助人为乐的事情,故事中小气球活泼可爱、充满了童趣,而且走到哪里唱歌到哪里,经常以帮助人为快乐,拥有一颗自信善良的心,该故事情节简单,富有想象性,适于中班幼儿活动。 幼儿基础: 中班幼儿年龄小,语言表达...
纪素波利: 这个很简单啊,不会你一定还是新手哦,我就不弄复杂的了,努力哦main() {int a,b,c,max; /*定义下几个数*/printf("enter a,b,c:"); /*打印一个提示*/scanf("%d%d%d",%a,%b,%c); /*输入3个数*/max=max(max(a,b),c); /*这里套一个...
楚雄市15676108002: 初学者:C语言如何输出三个数中最大数. - ?
纪素波利: #include<stdio.h> int main() { int a,b,c,d;a=1,b=2,c=3;printf("%d,%d,%d",a,b,c);if(a>=b)d=a;else d=b;printf("三个数中最大数是:"); if(d>c) printf("%d",d); else printf("%d",c); return 0; } 这样就对了,但是很混乱,最好改进一下 ...
楚雄市15676108002: C语言:编写一个程序实现3个数之间大小的比较.将最大的数输出 - ?
纪素波利: #include<stdio.h> main() { int a,b,c,d; printf("输入3个数:");//输入3个数 scanf("%d%d%d",&a &b &c);if(a>b)//比较大小并输出较大在数 d=a ; else d=b; if(d>c) printf("%d",d); else printf("%d",c); }
楚雄市15676108002: 怎么用C语言编写一个程序,输入三个数值,然后输出其中最大者. - ?
纪素波利: 用if可以这么写:#include <stdio.h> int main(void) { int a, b, c, _max; scanf("%d%d%d", &a, &b, &c); if(a > b) { if(a > c) _max = a; else _max = c; } else if(a <= b) { if(b > c) _max = b; else _max = c; } printf("Max: %d\n", _max); return 0; }用qsort...
楚雄市15676108002: 如何用c语言编写一个程序 就是有三个数 求最大的一个 - ?
纪素波利: 程序如下:#include int main() { int a,b,c,max; scanf("%d,%d,%d",&a,&b,&c); max=a; if(b>a) max=b; if(b>c) max=b; else if (c>a) max=c; printf("max=%d\n",max); return 0; } 基本思想:依次选出数组最小的数放到数组的前面.首先从数组的第...
楚雄市15676108002: C语言程序设计里面的“求三个数中的最大数”的编程怎么做!??
纪素波利: 程序如下: #include<stdio.h> void main() { int a,b,c,max; printf("输入三个数字:\n"); scanf("%d%d%d",&a,&b,&c); if(a>b&&a>c) max=a; if(b>a&&b>c) max=b; if(c>a&&c>b) max=c; printf("最大的数字是: %d\n",max); } 有疑问提出. 望采纳哦~~
楚雄市15676108002: 初学c语言三个数比大小输出最大的数 - ?
纪素波利: 比大小的思路是设一个变量用来获得最大值,你这里是d,if如果a大于b那么把a的值赋给d,否则就是else 就把b的值赋给d.然后再用当前的d跟第三个数c做比较,如果比c小,那么说明c最大就把c值赋给d,得到的d值就是最大数.举个具体数字...
楚雄市15676108002: C语言 题目:求3个数中的最大数 要求:编程,请写出程序 - ?
纪素波利: 对于三个数a,b,c的最大的数就是a和b中较大的是再和c比较大小 #include <stdio.h> int max(int x,int y){if(x>y) return x;return y; } int main(){int a,b,c;printf("请输入三个数:");scanf("%d%d%d",&a,&b,&c);printf("最大的数是:%d\...
楚雄市15676108002: 用C语言编程求3个数中的最大数 用自定义函数来实现 - ?
纪素波利: 1 2 3 4 5 6 7 8 9intmax(inta, intb) {returna>b?a:b;} intmain() {inta,b,c;scanf("%d%d",&a,&b,&c);printf("%d\n", max(max(a,b),c));return0; }
楚雄市15676108002: c语言设计判断三个数最大值的程序 - ?
纪素波利: scanf写错了,应写成 scanf("%d %d %d",&x,&y,&z);