c语言运算符op,!c语言
大家好,今天小编来为大家解答以下的问题,关于c语言运算符op,!c语言这个很多人还不知道,现在让我们一起来看看吧!
关于C语言的基础题。
e<iostream>
#include<stdlib.h>
#include<ctime>
#include<conio.h>
using std::cin;
using std::cout;
using std::endl;
//计算式数量
int const Num= 100;
//计算式中最大数
int const MaxNum= 100;
//每题分数
int const PerMark= 1;
//计算结果最大值
int const MaxResult= 100;
//计算结果最小值
int const MinResult= 0;
enum enOp;
//将枚举类型转换为字符类型,以便输出。
char enum2char(enOp op)
{
switch(op)
{
case Add:
return'+';
case Subtract:
return'-';
case Multiply:
return'x';
case Divide:
return'/';
}
return'';
}
//计算生成表达式的正确结果。
int myResult(int left,int right,enOp op)
{
switch(op)
{
case Add:
return left+right;
case Subtract:
return left-right;
case Multiply:
return left*right;
case Divide:
return left/ right;
}
return 0;
}
//检查生成计算式的正确与否。其中减法结果不能为负数,除法结果不能为小数。
bool checkFormula(int left,int right,enOp op)
{
switch(op)
{
case Add:
{
return true;
}
case Subtract:
{
if(left< right)
return false;
return true;
}
case Multiply:
{
return true;
}
case Divide:
{
if(right== 0)
return false;
if(double(left/right)!= double(double(left)/double(right)))
return false;
return true;
}
}
return false;
}
//依据给定操作符,生成符合条件的表达式。
void getFormula(int* left,int*right,enOp op)
{
//srand(time(NULL));
for(;;)
{
*left= 1+ rand()% MaxNum;
*right= 1+ rand()% MaxNum;
if(checkFormula(*left,*right,op)&& myResult(*left,*right,op)<= MaxResult&& myResult(*left,*right,op)>= MinResult)
break;
}
}
int main()
{
//操作符左值
int left[Num];
//操作符右值
int right[Num];
//用户输入计算结果
int result[Num];
//操作符+-*/
enOp oper[Num];
//正确答案个数
int answerRight= 0;
cout<<"正在生成,请稍等。"<<endl;
//随机种子
srand(time(NULL));
//开始生成计算表达式。
for(int i= 0;i<Num;i++)
{
//srand((unsigned)time(NULL));
//操作符
oper[i]= enOp(rand()%4);
getFormula(&left[i],&right[i],oper[i]);
}
cout<<"生成计算式完成,开始答题!"<<endl;
//输出表达式,让用户答题
for(int i= 0;i<Num;i++)
{
//输出表达式
cout<<"第"<<i+1<<"题:\n";
cout<<left[i]<<''<<enum2char(oper[i])<<''<<right[i]<<"=";
//获取用户答案
cin>>result[i];
//比对用户答案是否正确,正确输出 right,answerRigth加一,否则输出not correct。
if(result[i]== myResult(left[i],right[i],oper[i]))
{
cout<<"Right!\n";
answerRight++;
}
else
{
cout<<"Not correct!\n";
}
}
//全部答题完毕,输出正确答案个数及得分。
cout<<"终止答题,共"<<Num<<"题,每题"<<PerMark<<"分,答对"<<answerRight<<"题,得分:"
<<answerRight*PerMark<<"分。";
//屏幕停止。
getch();
return 0;
}
c语言编程题,如何编写运算符优先级
第3题:1,0,3(本题和运算符优先级有关,可看插图)
第4题:第一空:scanf("%c",&c);(因为前有变量char类型变量c,而第一个printf语句为提示让我们输入数据的语句,不难看出咱们少了一个输入语句,所以是用scanf,注意scanf里面的书写)
第二空:c>='0'&&c<='9'
第三空:c>='A'&&c<='Z'
(第五题在下面)
优先级图1
优先级图2
第5题:第一空:op(这里可以去复习一下switch语句格式)
第二空:'-'
第三空:break
解答完毕,你也可以在自己的软件里也运行一下,感受一下。
C语言单目和双目运算符的区别
单目运算符和双目运算符的区别只有一个,那就是操作数(变量或常量)数量的不同。
单目运算符只对一个操作数进行逻辑运算。
比如: num++(自增), num--(自减),!num(取非值),~num(按位取反)。
双目运算符只对两个操作数进行逻辑运算。
比如: num1+ num2, num1- num2, num1> num2
扩展资料:
除了单目和双目运算符,还有一个三目运算符。
三目运算符就是对三个操作数进行逻辑运算。目前三目运算符只有一个:num1= num1> 3? 1: 2
这段程序的意思是:如果变量num1的值,大于3,那么变量num1的值就变为1,否则num1的值就
变为2
关于本次c语言运算符op和!c语言的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。