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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)