#include "stdio.h"
int fn(int x)
int main()
{
int x, y
scanf("%d", &x)
y=fn(x)
printf("%d\n", y)
return 0
}
int fn(int x)
{
if(x<0) return -1
else if(x==0) return 0
else return 1
}
第二题
#include "stdio.h"
int main()
{
char ch
scanf("%c", &ch)
/*判断ch是否大写字母*/
if( ch >= 'A' &&ch <= 'Z')
{
ch += 32 /*加上32转化为小写字母*/
printf("%c\n", ch)
}
else
{
printf("%c\n", ch)
}
return 0
}
第三题
#include "stdio.h"
/* max函数,返回a,b,c当中最大者 */
int max(int a, int b, int c)
int main()
{
int m, a, b, c
scanf("%d %d %d", &a, &b, &c)
m=max(a,b,c)
printf("%d\n", m)
return 0
}
int max(int a, int b, int c)
{
int temp
/*先判断a,b,将a,b中较大的存进temp*/
if(a>=b)
temp = a
else
temp = b
/*再判断temp和c的大小*/
if(c>temp)
temp = c
return temp
}
第四题
#include "stdio.h"
int main()
{
int a=3, b=4, c=5
int x, y
/*每个表达式都返回一个bool值,0或1,直接输出就行了*/
printf("%d\n", a+b>c&&b==c)
printf("%d\n", a||b+c&&b-c)
printf("%d\n", !(a>b)&&!c||1)
printf("%d\n", !(x=a)&&(y=b)&&0)
printf("%d\n", !(a+b)+c-1&&b+c/2 )
return 0
}
有什么不懂的尽管问我,我会尽力帮助你的^_^
代码如下:
#include "pch.h"
#include <iostream>
#include <functional>
#include <map>
#include <string>
using namespace std
int add(int i, int j)
{
return i + j
}
// 使用函数调用运算符
struct divide
{
int operator()(int i, int j)
{
return i / j
}
}
auto mod = [](int i, int j) {return i % j}
map<string, function<int(int, int)>>binops =
{
{"+", add}, // 使用函数指针
{"-", minus<int>()}, // 使用标准库函数对象
{"*", [](int i, int j) {return i * j}}, // 使用未命名的lambda表达式
{"/", divide()}, // 使用函数调用运算符
{"%", mod} // 命名了的lambda表达式
}
int main()
{
int num1, num2
string s
while (cin >>num1)
{
cin >>s >>num2
cout <<num1 <<s <<num2 <<"=" <<binops[s](num1, num2) <<endl
}
return 0
}
扩展资料
Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断选择代码。其功能就是控制流程流转的。
直线翻译:switch语句,即“切换”语句;case即“情况”。
switch语句的语法如下(switch,case,break和default是关键字):
switch ( 变量表达式 )
{
case 常量1 :语句break
case 常量2 :语句break
case 常量3 :语句break
...
case 常量n:语句break
default :语句break
}
当变量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面所有case语句中的语句,除非遇到break语句跳出switch语句为止。如果常量表达式的量与所有case语句的常量都不相符,就执行default语句中的语句。
#include <stdio.h>#include <math.h>
enum state
int ctoi( char c)
bool isNum( char a)
bool isOp(char op)
{
switch(op)
{
case '+':
return true
break
case '-':
return true
break
case '*':
return true
break
case '/':
return true
break
default:
return false
break
}
}
bool isDot(char dot)
int checkString( char str[], double *a, double * b, char* op, int num)
{
enum state s = BEGIN
int a_i = 0
int b_i = 0
double num1 = 0
double num2 = 0
int pointNum = 0
for( int i = 0i <num++i)
{
if(str[i] == ' ')continue
switch(s)
{
case BEGIN:
if(isNum(str[i]))
elses = ERROR
break
case P2:
if(isNum(str[i]))
else if(isDot(str[i]))
{
s = P3
}
else if(isOp(str[i]))
{
*op = str[i]
s = P5
}
else
s = ERROR
break
case P3:
if(isNum(str[i]))
{
num1 = num1 + ctoi(str[i]) * pow(0.1, ++pointNum)
s = P4
}
else
s = ERROR
break
case P4:
if(isNum(str[i]))
{
num1 = num1 + ctoi(str[i]) * pow(0.1, ++pointNum)
s = P4
}
else if(isOp(str[i]))
{
*op = str[i]
s = P5
}
else
s = ERROR
break
case P5:
if(isNum(str[i]))
{
num2 = num2 * 10 + ctoi(str[i])
s = P6
}
else
s = ERROR
break
case P6:
pointNum = 0
if(isNum(str[i]))
{
num2 = num2 * 10 + ctoi(str[i])
s = P6
}
else if(isDot(str[i]))
{
s = P7
}
else
s = END
break
case P7:
if(isNum(str[i]))
{
num2 = num2 + ctoi(str[i]) * pow(0.1, ++pointNum)
s = P8
}
else
s = END
break
case 8:
if(isNum(str[i]))
{
num2 = num2 + ctoi(str[i]) * pow(0.1, ++pointNum)
s = P8
}
else if(isOp(str[i]))
{
s = END
}
else
s = END
break
case ERROR:
printf("express error. \n")
break
}
if (s == END || s == ERROR)
break
}
if(s==END)
else
}
int main()
{
char op
double a
double b
char string[128] =
scanf("%s", &string)
printf("the expression you input is : %s. \n", string)
getchar()
if (-1 == checkString(string, &a, &b, &op, 128))
{
printf("error occur while checking expression. Be sure no space in your expression when input\n")
getchar()
return 0
}
double result
switch(op)
{
case '+':
result = a + b
break
case '-':
result = a - b
break
case '*':
result = a * b
break
case '/':
if(b != 0)
result = a / b
else
{
printf(" error! %d/%d", a, b)
return -1
}
break
default:
printf("undefined expression.\n")
break
}
printf("%f %c %f = %f\n", a, op, b, result)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)