C语言问题,请问这句语句怎么理解(for(i=3;i<=100;i+=3) if (i%7)s+=i)

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-01
for(i=3;i<=100;i+=2) { for(j=2;j<=i;j++) if(i%j==0) break; if(i==j) printf("%d\n",i);

素数是除了1和它本身外不能被其他数整除的数,而if(i==j)这条语句是看你是如何跳出循环的,如果i==j,那么说明i是整除了它本身跳出循环的,所以是素数,若是不相等,那么说明除了1和它本身外还能被其他数整除,然后跳出循环,故不是素数

先是if(++x%2==0) 意思是 看i+1是否能被2整除 ,然后是if(++x%3==0) 是看i+2是否能被3整除,最后是if(++x%7==0) 是i+3是否能被7整除。输出的是i+3 而不是i

这个如果是个选择题 就把这几个选项带进去 首先这个输出的是偶数 逆着算 比较好算
填空的话 就先写出100以内能被7整除的数 这输出的先排除奇数 因为i+1能被2整除 所以i+3也应该被2整除 然后就剩7个数了 再带进去不就简单了

这是一个for循环语句,意思是:i=3是初始值,它满足i<=100这个条件,就执行i+=3就是i=i+3=3+3=6,if(i%7)是判断i能不能整除7,不能就执行s+=i这条语句!
然后6又满足i<=100,又执行i+=3,值变为9,如此循环下去,直到i不满足i<=100这个条件

遍历3~100间的所有能被3整除的数,求其中不能被7整除的数的和,和是s。

i从3开始,每次增加3,直到i超过100;如果i不是7的整数倍,那么s增加i. 非0值看着真,0看做假.

这个程序的意思是求一百以内不能被7整除的数的累加和,i以每次自加3的方式增加

i每次增加3,如果i除以7有余数,if为真,s=s+i;
即结果为100以内能整除3不能整除7的数的和。

求的是100以内是7的倍数的数字的和
S=7+14+21+28+35+42。。。。。。

  • C语言问题,请问这句语句怎么理解(for(i=3;i<=100;i+=3) if (i%7)s...
    答:这是一个for循环语句,意思是:i=3是初始值,它满足i<=100这个条件,就执行i+=3就是i=i+3=3+3=6,if(i%7)是判断i能不能整除7,不能就执行s+=i这条语句!然后6又满足i<=100,又执行i+=3,值变为9,如此循环下去,直到i不满足i<=100这个条件 ...
  • 请问这句c语言语句如何理解?
    答:for(i=n-2;i>=0;i++)意思是执行for循环体,i初始化值为n-2的值赋予给i,当i>=0时,i每次自加1,{if(output[i]<(output [i+1];break;}这是for循环体的判断语句,意思是当i数组小于i数组加1时,执行break终止后面的循环体,如果只想终止符合判断逻辑的语句可以把break改成continue ...
  • C语言的问题,这段语句怎么理解? int x = 5; int *p = &x; int **pp...
    答:这里涉及的是指针的知识,包括一级指针和二级指针。这里的p为一级指针,pp为二级指针。所谓二级指针,即指针的指针。因此,*p表示x的值,*pp为指针p的值(这可以通过直接打印p和*pp来确认),因此**pp也是x的值,即5。
  • C语言中,这条语句是什么意思?
    答:这叫递归函数(自己调用自己)。递归只有执行到调用自己的地方,就会进入下一层。一层一层嵌套,直到某一层不再执行调用(对应这题就是n>1不成立的那一层)。然后,从最后一层往前返回。执行流程如下:1、执行sum=fun(a+2,4);这里把a首地址往后偏移2位的数组传入(既3,4,5...的数组)。所以,这...
  • C语言请问里面的这一句话要怎么理解为什么这里表明只能输入两次四个值...
    答:你这个循环for(i=0;i<2;i++) 表示输入两次,理解正确 scanf("%d %s %c %c",&person[i].num,person[i].name,&person[i].sex,&person[i].job);这句,先输入四个值,没有错误,理解正确 以下,先判断job的数据值,两确定以何种方式输入相应的数据。if(person[i].job=='s')scanf("...
  • c语言 看不懂这句话是什么意思
    答:int a=2,b=4,c=6,x,y;y = (x=a+b),(b+c);看清楚了: 2个分号之间的内容是 一句语句。也就是说 y = (x=a+b),(b+c); 这是一句完整的语句。注意,里面含有逗号。 这里的逗号 把语句分解成2个部分。一个是 y = (x=a+b), 另一个是 (b+c);与 y 计算...
  • 请问C语言中这句语句是什么意思?(void (*)(long))FREQCAL_Init;_百 ...
    答:声明一个指向返回值从void被强制转换为long类型的函数的指针变量。有点难明白,呵呵,简化下 比如:(void *)FREQCAL_Init;这句就是声明一个指向返回值为void的函数的指针(是函数的指针,不是指针函数哦),(long)这个是强制转换数据类型为long,合在一起,就是之前的解释了。
  • C语言,这题怎么理解
    答:每个for循环都多了一个分号,使下面的语句没有进行循环所以 printf语句只执行了一次。输出一个*号
  • 请问大神,这个C语言语句怎么理解?如下 c=(--a!=b++)?-a:++b
    答:1,先理解三元运算 a==b?c:d 如果a==b成立,则取c,否则取b;2,在看前置++/-- 和后置++/--, 例如--a,为前置--,则先--在预算 所以可以试着看 c=(--a!=b++)?(-a):(++b)如果 (--a!=b++) 成立,则C=-a,否则 c=++b;...
  • 新手C语言,这句话怎么理解??谢谢了!!!
    答:换言之,s[i]是星号的时候,循环体会立刻完成当前这一轮,然后再度回到for (i =0, s[i]!='\0'; i++),执行i++。简而言之,注释所在的i=i+1这句话,如果没有,只是会多执行一轮外层for循环,外层for循环的i++也能实现这个i=i+1。不影响程序结果。如果考虑效率问题,保留i=i+1这句...