第一题:
我写在注释里了,那个n和m的含义我不理解,为什么要有n?n++要干嘛?返回n干嘛?
main函数里的n和Sub函数里的n有关系吗?还是只是同名而已,两者并没有关系。
m又是干啥用的?
#include <stdio.h>
int Sub(int k,int n) //这个函数为什么要有n?
{
int a1,a2;
a2=k/10;
a1=k-a2*10;
if((k%3==0&&a2==5)||(k%3==0&&a1==5))
{
printf("%4d",k);
n++; //这里n++是要干嘛?
return n; //返回n又是干嘛?
}
else
return -1;
}
int main()
{
int n=0,k,m;
for(k=10;k<100;k++)
{
m=Sub(k,n);
if(m!=-1)
{
n=m; //这个n又是什么?他和函数里的n有关系吗?
}
}
printf("\nn=%d\n",n);
return 0;
}
第二题:
下列变量定义合法的是:
谢谢!
第一题,其实你把n写成全局变量的话,就没这个问题了。
目的其实就是sub函数每找到一个符合条件的输入,全局变量+1.
但是全局变量用多了会造成混乱,所以用了这么个办法,把当前的n先传入函数,加1之后再return回来
其实有个更好的办法,不要直接在sub里累加,返回一个bool值,在调用的地方判断,如果返回true就让n++,这样更好,高内聚,低耦合
第二题,答案C
A:变量不可以以数字开头
B:e的指数必须是整数,不可以是2.5
D:底数必须是1-10之间的数,不可以写.1