c语言 读下列程序,写出程序的输出结果 希望有详细解析

c语言 读下列程序,写出程序的输出结果 希望有详细解析,第1张

输出结果为:

max value is 36

因为主程序内的双重循环,对数组的每个元素都乘以3并放回原处。

输出语句则调用函数,求取这个二维 数组中的最大值,所以函数返回值是36

先说一点需要的知识

scanf:

① 遇空格、“回车”、“跳格”键,结束当前输入

② 遇宽度结束,结束当芦裤前输入

③ 遇非法输入,结束所有输入

scanf的返回值表示输入成功的数的个陪昌简数,若遇到输入意外返回EOF

你的这个程序,输入逗号是遇到迅枝非法字符,scanf结束所有输入同时返回1(因为第一个值是正确的)

也就是说

如果

int ret=scanf("%d%d%d",&x,&y,&z)

printf("%d",ret)

如果输入的是

25,13,10<CR>

则程序会打印1,x的值是输入的第一个数25,但y z却是申请空间时的随机数,所以最后的printf("x+y+z=%d",x+y+z)输出是不确定的

您好,很高兴回答您的问题。

您的这个程序主要是学会指针与数组的关系,以及数字字符型数据之间的关系。首先是定义字符型数组s,包含6个字符。然后定义指针变量p,指向字符型数据,并且p指向数组a。接下来往p所指向的位置,就是a数组中输入字符数据。当p指向的位置数据不为旅轮\0,即字符结束的标志时,对n的数据乘以8,再加上当前p所指向的字符减去字符0。需要注意的时,埋镇并两个数字型字符相减,得到的就是两个数字相减的结果。

所以这个题目的结果弯迹为第一次n=0*8+3-0=3,第二次=3*8+2-0=26,第三次=26*8+1-0=209。所以最终输出结果为209。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12394572.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存