&引用&&&引用;及;及;C中的运算符
我试图计算两个整数的最大公分母 C代码:&引用&&&引用;及;及;C中的运算符,c,operators,logical-operators,C,Operators,Logical Operators,我试图计算两个整数的最大公分母 C代码: #include <stdio.h> int gcd(int x, int y); int main() { int m,n,temp; printf("Enter two integers: \n"); scanf("%d%d",&m,&n); printf("GCD of %d & %d is = %d",m,n,gcd(m,n)); return 0; } int
#include <stdio.h>
int gcd(int x, int y);
int main()
{
int m,n,temp;
printf("Enter two integers: \n");
scanf("%d%d",&m,&n);
printf("GCD of %d & %d is = %d",m,n,gcd(m,n));
return 0;
}
int gcd(int x, int y)
{
int i,j,temp1,temp2;
for(i =1; i <= (x<y ? x:y); i++)
{
temp1 = x%i;
temp2 = y%i;
if(temp1 ==0 and temp2 == 0)
j = i;
}
return j;
}
#包括
国际货币基金组织(国际货币基金组织x,国际货币基金组织y);
int main()
{
内部温度m,n,温度;
printf(“输入两个整数:\n”);
scanf(“%d%d”,&m,&n);
printf(“%d和%d的GCD为=%d”,m,n,GCD(m,n));
返回0;
}
整数gcd(整数x,整数y)
{
int i、j、temp1、temp2;
for(i=1;i基本上和只是中&
的文本版本。
但是,您确实需要#包含。否则它将无法编译
您可以在此处阅读更多内容:
请查看此处的页面
此标题定义了11个宏,它们是一些常用运算符的文本等价物。
和
是定义之一
<>请注意,我只能对C++编译器进行测试,所以我不能确定是否可以用严格的C编译器使用。
编辑我刚刚用C编译器对它进行了测试,它确实有效。它是为您编译的,因为我认为您包含了iso646.h(ciso646.h)头文件。
根据它,与&&。相同。如果不包括,它会导致编译器错误。与
运算符是与&
Ref-
或
运算符是与|
Ref.-
因此,resA
和resB
是相同的。&
和和
是备用代币,功能相同,第2.6节中的备用代币来自:
是表2-替代代币中的条目之一,在第2小节中说明:
在语言的各个方面,除了拼写之外,每个可选标记的行为都与主标记的行为相同。表2中定义了一组可选标记
正如Potatoswatter指出的那样,使用和很可能会让大多数人感到困惑,所以最好还是坚持使用&&
重要的是要注意,在Visual Studio中
,显然不打算这样做
编辑
< >我添加了一个C的具体答案,因为这本来是一个C++问题的答案,但是我正在添加一个相关的引文,从第7.9节中的替代拼写“代码> <代码> >第1段说:
标题定义了以下11个展开的宏(位于左侧)
到相应的令牌(右侧):
包括这一行以及其他几行:
and &&
我们也可以找到一个很好的参考
更新
查看您的最新代码更新,我不确定您是否真的是在C模式下编译,for OrwellDev 5.4.2说它使用的是GCC 4.7.2。我无法在GCC-4.7
或GCC-4.8
中构建它,也无法使用-xC
将其置于C语言模式,请参见。尽管您对GCC
行和我们进行注释eg++
它构建ok。如果您取消注释\include
,它也在gcc
下构建ok,
只是&
的一个替代标记
我们可以在此处轻松引用标准:
2.6替代代币[lex.digraph]
在语言的各个方面,除了拼写之外,每个可选标记的行为都与主标记的行为相同。表2中定义了一组可选标记
表2:
Alternative | Primary
and | &&
但是我建议你使用和&
。习惯C/C++的人可能会被和弄糊涂
由于它现在被合并了,我们也在讨论C,您可以查看定义替代标记的页面
此头定义了11个宏常数,这些常数可用于那些不被ISO64标准字符集支持的C++运算符。
根据C99标准草案:
7.9可选拼写
标题定义了以下11个展开的宏(左侧)
到相应的令牌(右侧):
<> >代码> &代码>和<代码>和<代码>是同义词和平均逻辑,C++中。对于更多信息检查和 如果你的问题中编译的代码没有错误,或者你不是真的编译在C99模式或(不太可能)你的编译器有缺陷。或者代码不完整,还有一个#include
,你还没有向我们展示
<>最可能是在C++模式下调用编译器。要测试这个,尝试添加一个声明:
int class;
<> > C编译器将接受此;C++编译器会将其作为语法错误拒绝,因为类< /C>是关键字。(这可能比测试<代码>“yp+cPLUS PLUS
定义了11个宏,这些宏为某些运算符提供了可选的拼写
#define and &&
这样你就可以写作了
if(temp1 ==0 and temp2 == 0)
在C语言中,只有当你有一个#include
,否则这是一个语法错误
是在1995年对1990年ISO C标准进行修订后添加到该语言中的,因此您甚至不需要C99兼容编译器来使用它
在C++中,头是不必要的;C的代码“< >代码”定义为宏的相同标记是内置的替代拼写。(它们在C++标准的相同部分中定义为2.6(LeX。有向图),作为有向图,但注脚说明“有向图”一词不适用于诸如“代码>和<代码>的词汇关键字。”正如C++标准所说:
在语言的各个方面,每个替代标记都表现为
除了拼写之外,与主要标记相同
在C++程序中,可以使用<代码>包含< /COD>,但是这样做没有意义(虽然它会影响<代码> >
实际上,我不建议使用替代令牌,无论是C还是C++,除非
#define and &&
if(temp1 ==0 and temp2 == 0)