为了账号安全,请及时绑定邮箱和手机立即绑定

这个用法不是很理解,请问关于C++ flag用法?

这个用法不是很理解,请问关于C++ flag用法?

慕的地8271018 2021-07-07 11:07:12
#include <iostream>using namespace std;int main(){int prime(int); /* 函数原型声明 */int n;cout<<"input an integer:";cin>>n;if (prime(n))cout<<n<<" is a prime."<<endl;elsecout<<n<<" is not a prime."<<endl;return 0;}int prime(int n){int flag=1,i;for (i=2;i<n/2 && flag==1;i++)if (n%i==0)flag=0;return(flag);}其中flag的值等于1时就时主函数上IF的情况,0则时ELSE的 ?
查看完整描述

3 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

if (prime(n))这里的prime(n)返回值如果不是0则执行if内的语句,是0则执行else语句。而prime(n)需要到子函数中判断,也就是说看return 返回什么结果
此题中只有是质数的才会返回1,才会执行if

查看完整回答
反对 回复 2021-07-11
?
ibeautiful

TA贡献1993条经验 获得超5个赞

0为假,非0为真
程序写错了
这里的flag是一个标志,根据在prime()里的if循环,如果n是素数,那么就flag=0,那么就是说n是素数,就返回flag=0
但你在主函数里写的是if (prime(n)) 此时返回值为0,就不执行,而是执行了else,输出的是n不是素数

查看完整回答
反对 回复 2021-07-11
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

这是由数据个数相同的两列数据构成的数组问题,可以利用数组特性进行计算。
假设C列数据区域为C2:C100,L列数据为L2:L100。
编辑公式为
=SUM((C2:C100=1)*L2:L100)
按组合键 Ctrl+Shift+Enter确认。
也可以用条件求和函数SUMIF()。具体使用详见函数帮助。
注意:
当C列中相等的数据不是连续区域时,IF函数无法执行求和



查看完整回答
反对 回复 2021-07-11
  • 3 回答
  • 0 关注
  • 460 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信