C语言填空题。求解意思?详细解答

C语言填空题。求解意思?详细解答,第1张

主前物手要是

while

(_m!=0)

{

k*=m%10

s+=m%10

m/=10

}

这一段吧

k记慧嫌录的是这个数每一位的乘积

s记录的是每一蚂氏位数的和

例如m=1234

进入while循环

k*=m%10等价于k=k*(m%10)

s+=m%10等价于s=s+(m%10)

m%10就是当前m的最低位4

k=k*4=4(k的初值为1)

s=s+4=4(s的初值为0)

m/=10的意思就是m=m/10

因为m是Int型的

所以只保留整数位

m=123

相当于把计算过的个位就扔掉了,那样下次%10取余的就是以前的十位了

m!=0那么又进入while循环

一直到m=1的时候

k的总值就是4*3*2*1

s的总值就是4+3+2+1

这时m/=10

因为商是0

所以m=0

说明这个数的所有位数已经计算完毕

则跳出循环,判断k和s的大小

如果k>s,就是满足条件的数,输出n

[1]可以直仔烂接填y[i]+=a[i][j] 计算出y[i]的值,如果i=0, y1=y[0]=a[0][0]+a[0][1]+a[0][2]+a[0][3]

[2]打念蚂漏印y的值。数组的下标是从0开始,y是从1开始所以 所物迹以y1对应是y[0]

答案:15,64 6(由于有些输出中间没有空格,所以输出是连在一起的了),分析如下:

#include<stdio.h>

int k=1

void main()

{

int i=4

void fun(int m)

fun(i)  //调用函数

printf("%d %d\n",i,k)  粗配//变量i=4,全局变量k的值是6,所以输出4 6

}

void fun(int m)

{

m+=k k+=m //这里m=4,全局变量k=1,所以m=m+k=4+1=5,k=k+m=1+5=6

{

char k='B' //定义了局部变量k,在花括号{}这个代码块内,屏蔽了全局变量的k

printf("%d",k-'A') 隐凳旅 //这里由于只有局灶凳部变量k起作用而k='B',输出1。

}

printf("%d,%d",m,k) //出了花括号后,局部变量的作用域结束了,全局变量的k又开始起作用,所以输出5,6

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存