两数取大 C

两数取大 C
两数取大 C

#include

#include

using namespace std;

int large(int x,int y)

{

if(x>y)

return x;

return y;

};

double large(double x,int y)

{

if(x>y)

return x;

return y;

};

double large(int x,double y)

{

if(x>y)

return x;

return y;

};

double large(double x,double y)

{

if(x>y)

return x;

return y;

};

struct complex

{

double a;

double b;

};

complex large(complex c1,complex c2)

{

double x,y;

x=sqrt((c1.a)*(c1.a)+(c1.b)*(c1.b));

y=sqrt((c2.a)*(c2.a)+(c2.b)*(c2.b));

if(x>y)

return c1;

return c2;

};

void main()

{

int x;

double y,c,d;

complex c1,c2,c3;

cout<<"请按提示操作"<

cout<<"1两个实数的取大;"<

cout<<"2两个复数的取大;"<

cout<<"请输入您需要操作命令的前的数字号;"<

cin>>x;

if(x==1)

{

cout<<"请输入两个实数:"<

cin>>c>>d;

y=(c,d);

cout<<"较大的数为:"<

}

if(x==2)

{

cout<<"请输入复数1的实部和虚部:"<

cin>>c1.a>>c1.b;

cout<<"请输入复数2的实部和虚部:"<

cin>>c2.a>>c2.b;

c3=(c1,c2);

cout<<"较大的是:"<

}

}

最新数学表达式计算(c语言实现)演示教学

一、设计思想 计算算术表达式可以用两种方法实现: 1.中缀转后缀算法 此算法分两步实现:先将算术表达式转换为后缀表达式,然后对后缀表达式进行计算。具体实现方法如下: (1)中缀转后缀 需要建一个操作符栈op和一个字符数组exp,op栈存放操作符,字符数组用来存放转换以后的后缀表达式。首先,得到用户输入的中缀表达式,将其存入str数组中。 对str数组逐个扫描,如果是数字或小数点,则直接存入exp数组中,当扫描完数值后,在后面加一个#作为分隔符。 如果是操作符,并且栈为空直接入栈,如果栈不为空,与栈顶操作符比较优先等级,若比栈顶优先级高,入栈;如果比栈顶优先级低或相等,出栈将其操作符存到exp数组中,直到栈顶元素优先等级低于扫描的操作符,则此操作符入栈;如果是左括号,直接入栈,如果是右括号,出栈存入exp数组,直到遇到左括号,左括号丢掉。然后继续扫描下一个字符,直到遇到str中的结束符号\0,扫描结束。结束后看op栈是否为空,若不为空,继续出栈存入exp数组中,直到栈为空。到此在exp数组最后加结束字符\0。 我们就得到了后缀表达式。 (2)后缀表达式计算 此时需要一个数值栈od来存放数值。对exp数组进行逐个扫描,当遇到数字或小数点时,截取数值子串将其转换成double类型的小数,存入od栈中。当遇到操作符,从栈中取出两个数,进行计算后再放入栈中。继续扫描,知道扫描结束,此时值栈中的数值就是计算的结果,取出返回计算结果。 2.两个栈实现算法 此算法需要两个栈,一个值栈od,一个操作符栈op。将用户输入的数学表达式存入str数组中,对其数组进行逐个扫描。 当遇到数字或小数点,截取数值子串,将其转换成double类型的数值存入od栈中; 当遇到左括号,直接入op栈;遇到右括号,op栈出栈,再从值栈od中取出两个数值,计算将其结果存入值栈中,一直进行此操作,直到操作符栈栈顶为左括号,将左括号丢掉。 如果遇到操作符,若op栈为空,直接入栈;若栈不为空,与栈顶元素比较优先等级,若比栈顶操作符优先等级高,直接入op栈,如果低于或等于栈顶优先等级,op栈出栈,再从值栈中取出两个数值,计算将其结果存入值栈中,一直进行此操作,直到栈顶优先等级低于扫描的操作符等级,将此操作符入op栈。继续扫描直到遇到str中的结束字符\0,扫描结束。此时看操作符栈是否为空,若不为空,出栈,再从值栈中取出两个数值进行计算,将其结果存入值栈,一直进行此操作,直到操作符栈为空。此时把值栈中的数值取出,即为所得的最终计算结果。 二、算法流程图 第一种算法:中缀转后缀算法

C语言中的22个数学函数

C语言的22个数学函数 在使用C语言数学函数时候,应该在该源文件中使用以下命令行: #include 或#include "math.h",这里的<>跟""分别表示:前者表示系统到存放C库函数头文件所在的目录寻找需要包含的文件,这是标准方式;后者表示系统先在拥护当前目录中寻找要包含的文件,若找不到,再按前者方式查找。为节省时间,在使用自己编写的文件时使用的是“”,自己编写的文件一般是在当前目录下。 22个数学函数中只有abs的数据类型是:”整型“,”int“。 log10、logE中的10与E是在log的左下角位置。其余求弧度函数需要看清楚是不是指数。排列方式如下:函数名:函数功能参数介绍,返回值,说明。函数原型。 1.abs: 求整型x的绝对值,返回计算结果。 int abs(int x); 2.acos:计算COS-1(x)的值,返回计算结果,x应在-1到1范围内。 doubleacos(double x); 3.asin: 计算SIN-1(x)的值,返回计算结果,x应在-1到1范围内。 doubleasin(double x); 4.atan: 计算TAN-1(x)的值,返回计算结果。double atan(double x); 5.atan2: 计算TAN-1/(x/y)的值,返回计算结果。 double atan2(double x,double y); 6.cos: 计算COS(x)的值,返回计算结果,x的单位为弧度。 double cos(double x); 7.cosh: 计算x的双曲余弦COSH(x)的值,返回计算结果。 double cosh(double x); 8.exp: 求e x的值,返回计算结果。 double exp(double x); 9.fabs: 求x的绝对值,返回计算结果。 duoblefabs(fouble x); 10.floor: 求出不大于x的最大整数,返回该整数的双精度实数。 double floor(double x); 11.fmod: 求整除x/y的余数,返回该余数的双精度。 doublefmod(double x,double y);

c语言上机试题1(数学计算)

1整型、实型 1.1实型四舍五入 请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。例如:实型数为1234.567, 则函数返回1234.57;实型数为1234.564, 则函数返回1234.56。注意: 部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include int NONO(void); float fun ( float h ) { } int main(void) { float a; printf ("Enter a: "); scanf ( "%f", &a ); printf ( "The original data is : " ); printf ( "%f \n\n", a ); printf ( "The result : %f\n", fun ( a ) ); NONO( ); return 1; } int NONO(void) {/* 请在此函数内打开文件,输入测试数据,调用fun 函数,输出数据,关闭文件。*/ int i ; float a ; FILE *rf, *wf ; rf = fopen("./05/in.dat","r") ; wf = fopen("./05/out.dat","w") ; for(i = 0 ; i < 20 ; i++) { fscanf(rf, "%f", &a) ; fprintf(wf, "%f\n", fun(a)) ; } fclose(rf) ; fclose(wf) ; return 1; }

c语言中求绝对值的数学函数

1、在C语言中,求绝对值的数学函数是( A )。 A、fabs() B、exp() C、pow() D、sqrt() 2、C语言可以使用printf函数实现输出,该函数在头文件( A )中定义。 A、stdio.h B、lib.h C、math.h D、printf.h 3、以下关于变量定义错误的是(A )。 A、char for; B、float USS; C、double int_; D、int _int; 4、在C语言中,求平方根的数学函数是( B )。 A、exp() B、sqrt() C、pow() D、fabs() 5、在C语言中,用printf函数输出float型数据时,可以使用格式控制符( B )。 A、%d B、%f C、%c D、%lf 6、以下说法正确的是( B )。 A、do-while语句构成的循环必须用break语句才能退出 B、do-while语句构成的循环,当循环条件为假时结束循环 C、do-while语句构成的循环,当循环条件为真时结束循环 D、不能使用do-while语句构成的循环 7、执行语句for(i=1;i<=10;i++) continue;后,i值为( C )。 A、9 B、无穷 C、11 D、10 8、C语言程序的基本控制结构是( B )。 A、循环结构

B、顺序、分支、循环 C、分支结构 D、顺序结构 9、float x ; 该语句将变量x定义为(B )类型。 A、双精度实型 B、单精度实型 C、字符型 D、整型 10、C 语言可以使用getchar()函数实现输入,该函数在系统头文件( D )中定义。 A、string.h B、用户自定义函数 C、math.h D、stdio.h 11、设x、y、z都是整型变量,x、y的初值都是5,执行z=(++x)+(y--)+1后,x、y、z三变量的值按顺序是( D )。 A、6,5,11 B、5,5,11 C、6,4,11 D、6,4,12 12、C语言中,三条边a、b、c能构成三角形的逻辑表达式是( D )。 A、a+b>c B、a>b>c C、a-bb D、a+b>c &&a+c>b &&b+c>a 13、下面有关for循环的正确描述是( D )。 A、for循环的循环体不能为空语句 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 14、使用系统提供的输出函数printf()时,实现换行功能的字符是(D )。 A、'/n' B、'\b' C、'\r' D、'\n' 15、从键盘输入一个整数给变量get,下列正确的语句是( B )。 A、printf("%d",&get); B、scanf("%d",&get); C、scanf("%d",get) ; D、printf("%d",get); 16、变量a、b分别声明为int型和double型,a的初值为5,如果b获得a的一半值,可使用哪条语句( C )。 A、b=a/2; B、b=sqrt(a); C、b=a/2.0;

C语言程序:求常用圆形体的体积

求常用圆形体的体积 程序描述: 设计一个常用圆形体体积的计算器,采用命令方式输入1、2、3.分别选择计算球体、圆柱体、圆锥体的体积,并输入函数所需的相应参数。 样例输入: 1 2 样例输出: 1-计算球体体积 2-计算圆柱体积 3-计算圆锥体积 其他-退出程序运行 请输入计算命令:1 请输入求的半径:2 球体积为:33.51 出题人: 我们一起的痕迹 程序代码 #include #include #include #define PI 3.141592654

void cal(int sel); int main(void) { int sel; while(1){ printf("1-计算球体体积\n"); printf("2-计算圆柱体积\n"); printf("3-计算圆锥体积\n"); printf("其他-退出程序运行\n"); printf("请输入计算命令:"); scanf("%d",&sel); if(sel<1||sel>3) break; else cal(sel); } return 0; } void cal(int sel) { double vol_ball(void); double vol_cylind(void); double vol_cone(void); switch(sel){ case 1: printf("球体积为:%.2f\n",vol_ball()); break; case 2: printf("圆柱体积为:%.2f\n",vol_cylind()); break; case 3: printf("圆锥体积为:%.2f\n",vol_cone()); break; } } double vol_ball() { double r; printf("请输入球的半径:"); scanf("%lf",&r); return (4.0/3.0*PI*r*r*r); } double vol_cylind() {

C语言中的数学函数库

2010年07月03日星期六 20:42 C语言提供了以下的数学函数,要使用这些函数时,在程序文件头必须加入: #include 编译时,必须加上参数「-lm」(表示连结至数学函式库),例如「gcc -lm test.c」。函数之自变量与传回之值型别见自变量或函数前之型别宣告。 函数已经在「math.h」或其它标头档宣告过了,因此在使用时不必再加型别宣告,例如「y=sin(x);」,不用写成「y=double sin(double x);」。 函数说明 double sin(double x) x 的正弦函数值 double cos(double x) x 的余弦函数值 double tan(double x) x 的正切函数值 double asin(double x) x 的反正弦函数值 sin-1x,x的值在 [-1,1] 之间,传回的值在 [-p/2,p/2] 之间 double acos(double x) x 的反余弦函数值cos-1x,x的值在 [-1,1] 之间,传回的值在 [-p/2,p/2] 之间 double atan(double x) x 的反正切函数值tan-1x,传回的值在 [-p/2,p/2] 之间 double atan2(double y, double x) y/x 的反正切函数值tan-1(y/x),传回的值在 [-p, p] 之间 double sinh(double x) x 的双曲正弦函数值 double cosh(double x) x 的双曲余弦函数值 double tanh(double x) x 的双曲正切函数值 double exp(double x) x 的指数函数 ex double log(double x) x 的自然对数 ln(x),x > 0 double log10(double x) x 底数为 10 的对数,log10x,x > 0 double pow(double x, double y) x 的 y 次方 xy double sqrt(double x) x 的根号值√x double ceil(double x) 不小于 x 的最小整数(但其型别为 double) double floor(double x)

c语言用六种方法求定积分

C语言实验报告 求定积分 班级10信息与计算科学一班姓名戴良伟 学号 21

1. 描述问题 利用①左矩形公式,②中矩形公式,③右矩形公式 ,④梯形公式,⑤simpson 公式,⑥Gauss 积分公式求解定积分。 2. 分析问题 定积分 定积分的定义 定积分就是求函数()f x 在区间[],a b 中图线下包围的面积。即()0,,,y x a x b y f x ====所包围的面积。这个图形称为曲边梯形,特例是曲边梯形。如下图: (图1) 设一元函数()y f x =,在区间[],a b 内有定义。将区间[],a b 分成n 个小区间[][][][]00112,,,,,......,i a x x x x x x b 。设1i i i x x x -?=-,取区间i x ?中曲线上任意一点记做()i f ξ,作和式: ()1lim n n i f i xi ξ→+∞=??? ??? ∑ 若记λ为这些小区间中的最长者。当0λ→时,若此和式的极限存在,则称这个和式是函数()f x 在区间[],a b 上的定积分。 记作:()b a f x dx ? 其中称a 为积分下限, b 为积分上限,()f x 为被积函数,()f x dx 为被积式,∫ 为积分号。 之所以称其为定积分,是因为它积分后得出的值是确定的,是一个数,而不是一个函数。 定积分的几何意义[1] 它是介于x 轴、函数f(x)的图形及两条直线x=a ,x=b 之间的各个部分面积的代数和。在x 轴上方的面积取正号;在x 轴下方的面积取负号。如图 言实现定积分计算的算法 利用复合梯形公式实现定积分的计算

C语言中的数学计算函数

C语言中之数学函数 C语言提供了以下的数学函数,要使用这些函数时,在程序文件头必须加入: #include 编译时,必须加上参数「-lm」(表示连结至数学函式库),例如「gcc -lm test.c」。函数之自变量与传回之值型别见自变量或函数前之型别宣告。 函数已经在「math.h」或其它标头档宣告过了,因此在使用时不必再加型别宣告,例如「y=sin(x);」,不用写成「y=double sin(double x);」。 函数说明 double sin(double x) x 的正弦函数值 double cos(double x) x 的余弦函数值 double tan(double x) x 的正切函数值 double asin(double x) x 的反正弦函数值sin-1x,x的值在[-1,1] 之间,传回的值在[-p/2,p/2] 之间 double acos(double x) x 的反余弦函数值cos-1x,x的值在[-1,1] 之间,传回的值在[-p/2,p/2] 之间 double atan(double x) x 的反正切函数值tan-1x,传回的值在[-p/2,p/2] 之间 double atan2(double y, double x) y/x 的反正切函数值tan-1(y/x),传回的值在[-p, p] 之间 double sinh(double x) x 的双曲正弦函数值 double cosh(double x) x 的双曲余弦函数值 double tanh(double x) x 的双曲正切函数值 double exp(double x) x 的指数函数ex double log(double x) x 的自然对数ln(x),x > 0 double log10(double x) x 底数为10 的对数,log10x,x > 0 double pow(double x, double y) x 的y 次方xy double sqrt(double x) x 的根号值√x

c语言中数学函数

c语言中数学函数 Revised as of 23 November 2020

C语言中之数学函数 C语言提供了以下的数学函数,要使用这些函数时,在程序文件头必须加入: #include <> 编译时,必须加上参数「-lm」(表示连结至数学函式库),例如「gcc - lm 」。 函数之自变量与传回之值型别见自变量或函数前之型别宣告。 函数已经在「」或其它标头档宣告过了,因此在使用时不必再加型别宣告,例如「y=sin(x);」,不用写成「y=double sin(double x);」。 函数说明 double sin(double x) x 的正弦函数值 double cos(double x) x 的余弦函数值 double tan(double x) x 的正切函数值 double asin(double x) x 的反正弦函数值 sin-1x,x的值在 [-1,1] 之间,传回的值在 [-p/2,p/2] 之间 double acos(double x) x 的反余弦函数值cos-1x,x的值在 [-1,1] 之间,传回的值在 [-p/2,p/2] 之间 double atan(double x) x 的反正切函数值tan-1x,传回的值在 [-p/2,p/2] 之间 double atan2(double y, double x) y/x 的反正切函数值tan-1(y/x),传回的值在 [-p, p] 之间 double sinh(double x)

x 的双曲正弦函数值 double cosh(double x) x 的双曲余弦函数值 double tanh(double x) x 的双曲正切函数值 double exp(double x) x 的指数函数 ex double log(double x) x 的自然对数 ln(x),x > 0 double log10(double x) x 底数为 10 的对数,log10x,x > 0 double pow(double x, double y) x 的 y 次方 xy double sqrt(double x) x 的根号值√x double ceil(double x) 不小于 x 的最小整数(但其型别为 double) double floor(double x) 不大于 x 的最大整数(但其型别为 double) int abs(int x) 整数 x 的绝对值 |x|? long labs(long x) 长整数 x 的绝对值 |x|? double fabs(double x) 实数 x 的绝对值 |x|

C语言基本计算方法

基本计算方法 牛顿迭代法 基本应用:求方程f(x)=0的近似解。基本公式:x i+1=x i-f(x i)/f’(x i)例题1:求实数a>0的平方根。 f(x)=x*x-a,f’(x)=2x,x i+1=1/2(x i+a/x i) #include #include int main() { double a,x; int i; printf("a : "); /*提示并 */ scanf("%lf",&a); /* 读取被开方数a */ x=a/2; /*1 取近似值x0=a/2 */ for(i=0; fabs(x*x-a)>=1e-6; i++) /*2 循环计算x(i+1)*/ { printf("x%d=%f\n",i,x); /*3 抽样显示xi*/ x=1/2.0*(x+a/x); /*4 由xi计算x(i+1)*/ } printf("x%d=%f\nsqrt(%f)=%f\n",i,x,a,sqrt(a));/*5 显示结果*/ return 0; } 例题2:求实数a的m次方根,精确到10-5 牛顿迭代公式:f(x)=x m-a,f’(x)=mx m-1. #include #include int main() { double a,x; int i,m; printf("a m: "); /*提示并 */ scanf("%lf%d",&a,&m); /* 读取被开方数a */ x=a; /*1 取近似值x0=a/2 */ for(i=0; fabs(pow(x,m)-a)>=1e-6; i++) /*2 循环计算x(i+1)*/ { printf("x%d=%f\n",i,x); /*3 抽样显示xi*/

C语言实现的矩阵加减乘法运算系统

/*本矩阵运算系统可以完成矩阵的加、减、乘法,但是只限于方阵*/ #include<stdio.h> #include<math.h> /*--------------------全局变量定义-------------------------*/ int n,m,c=0; int a[100][100],b[100][100]; int fc[100][100]; /*--------------------函数声明-----------------------------*/ void print(); void print_sub(); void input_marry(); void add_marry(); void sub_marry(); void mut_marry(); /*------------------主函数-----------------*/ void main() { print(); scanf("%d",&c); while(c!='\0') { if(c==1) {input_marry();} if(c==2) {add_marry();} if(c==3) {sub_marry();} if(c==4) {mut_marry();} if(c==0) {c='\0';} printf("请选择运算:\n\n"); scanf("%d",&c); } }

/*----------------打印函数------------------*/ void print() { printf(" 矩阵运算管理系统 \n"); printf("------------------------------------\n"); printf("1 输入矩阵\n"); printf("2 矩阵相加\n"); printf("3 矩阵相减\n"); printf("4 矩阵相乘\n"); printf("0 退出系统\n"); printf("------------------------------------\n"); printf("请选择:\n\n"); } /*---------------矩阵输入-----------------------*/ void input_marry() { int i,j; printf("请输入矩阵的维数\n\n"); scanf("%d",&n); m=n*n; /*---------------第一个矩阵输入-----------------*/ printf("请输入第一个矩阵a(共有%4d个元素):\n\n",m); do { m--; for(i=0;i<n;i++) for(j=0;j<n;j++) { scanf("%d",&a[i][j]); } }while(m<0); /*----------------打印第一个矩阵---------------*/ printf("您输入的矩阵a=\n\n"); for(i=0;i<n;i++) for(j=0;j<n;j++) { printf("%10d",a[i][j]); if(j==n-1)printf("\n"); } /*---------------第二个矩阵输入-----------------*/ m=n*n;

常用数学算法C语言实现

一、基本算法 1.交换(两量交换借助第三者) 例1、任意读入两个整数,将二者的值交换后输出。 main() {int a,b,t; scanf("%d%d",&a,&b); printf("%d,%d\n",a,b); t=a; a=b; b=t; printf("%d,%d\n",a,b);} 【解析】程序中加粗部分为算法的核心,如同交换两个杯子里的饮料,必须借助第三个空杯子。 假设输入的值分别为3、7,则第一行输出为3,7;第二行输出为7,3。 其中t为中间变量,起到“空杯子”的作用。 注意:三句赋值语句赋值号左右的各量之间的关系! 【应用】 例2、任意读入三个整数,然后按从小到大的顺序输出。 main() {int a,b,c,t; scanf("%d%d%d",&a,&b,&c); /*以下两个if语句使得a中存放的数最小*/ if(a>b){ t=a; a=b; b=t; } if(a>c){ t=a; a=c; c=t; } /*以下if语句使得b中存放的数次小*/ if(b>c) { t=b; b=c; c=t; }

printf("%d,%d,%d\n",a,b,c);} 2.累加 累加算法的要领是形如“s=s+A”的累加式,此式必须出现在循环中才能被反复执行,从而实现累加功能。“A”通常是有规律变化的表达式,s在进入循环前必须获得合适的初值,通常为0。 例1、求1+2+3+……+100的和。 main() {int i,s; s=0; i=1; while(i<=100) {s=s+i; /*累加式*/ i=i+1; /*特殊的累加式*/ } printf("1+2+3+...+100=%d\n",s);} 【解析】程序中加粗部分为累加式的典型形式,赋值号左右都出现的变量称为累加器,其中“i = i + 1”为特殊的累加式,每次累加的值为1,这样的累加器又称为计数器。 3.累乘 累乘算法的要领是形如“s=s*A”的累乘式,此式必须出现在循环中才能被反复执行,从而实现累乘功能。“A”通常是有规律变化的表达式,s在进入循环前必须获得合适的初值,通常为1。 例1、求10! [分析]10!=1×2×3×……×10 main() {int i; long c; c=1; i=1;

离散数学计算笛卡尔乘积C++或C语言实验报告

离散数学实验报告 专业班级:12级计算机本部一班姓名:鲍佳珍 学号:201212201401016 实验成绩: 1.【实验题目】 通过编程实现求给定集合A和B的笛卡儿乘积C(C=A×B)的运算。 2.【实验目的】 已知所给集合A和B,求A与B的笛卡儿乘积C(C=A×B)。 假设集合A={1,2,3,4,5},集合B={2,3,8,9,10}, 3、实验原理与实现过程 笛卡儿集合:设A,B是两个集合,称集合A×B={|(x∈A)∧(y∈B)}为集合A与B的笛卡儿积。换句话说,笛卡儿乘积是以有序偶为元素组成的集合,它的定义为C={|x∈A∧y∈B}。所以,欲求笛卡儿乘积。只需取尽由集合A 的元素及集合B的元素,并构成序偶送入C之中即可。 算法描述:。 (1)将集合A的元素个数送入N。(2)将集合B的元素个数送入M。(3)1?i。 (4)若i>N,则结束。 (5)1?j。 (6)若j>M,则转(9)。 (7)?C。 (8)j+1?j,转(6)。 (9)i+1?i,转(4)。 4、C或C++语言编程实现 将实验内容与结果按实验报告格式要求填写并上传。 5. 【算法描述】 1.实验原理

真值表:表征逻辑事件输入和输出之间全部可能状态的表格。列出命题公式真假值的表。通常以1表示真,0 表示假。命题公式的取值由组成命题公式的命题变元的取值和命题联结词决定,命题联结词的真值表给出了真假值的算法。真值表是在逻辑中使用的一类数学表,用来确定一个表达式是否为真或有效。 2.实验过程 首先是输入一个合理的式子,生成相应真值表,然后用函数运算,输出结果:要求可生成逻辑非、合取、析取、蕴含、双条件表达式的真值表,例如:输入 !a 输出真值表如下: a !a 0 1 10 输入a&&b 输出真值表如下: a b a&&b 0 0 0 0 1 0 1 0 0 1 1 1 输入a||b 输出真值表如下: a b a||b 0 0 0 0 1 1 1 0 1 1 1 1 输入a->b 输出真值表如下: a b a->b 0 0 1 0 1 1 1 0 0 1 1 1 输入a<>b (其中<>表示双条件) 输出真值表如下: a b a<>b 0 0 1 0 1 0 1 0 0 1 1 1

实用C语言中的运算规则

C语言中的运算规则 变0 左移用来将一个数的各二进制位全部左移N位,右补0 右移将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0 1、“按位与”运算符() 按位与是指:参加运算的两个数据,按二进制位进行“与”运算。如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。这里的1可以理解为逻辑中的true,0可以理解为逻辑中的false。按位与其实与逻辑上“与”的运算规则一致。逻辑上的“与”,要求运算数全真,结果才为真。若,A=true,B=true,则A∩B=true 例如:35 3的二进制编码是11(2)。(为了区分十进制和其他进制,本文规定,凡是非十进制的数据均在数据后面加上括号,括号中注明其进制,二进制则标记为2)内存储存数据的基本单位是字节(Byte),一个字节由8个位(bit)所组成。位是用以描述电脑数据量的最小单位。二进制系统中,每个0或1就是一个位。将11(2)补足成一个字节,则是00000011(2)。5的二进制编码是101(2),将其补足成一个字节,则是00000101(2) 按位与运算: 00000011(2) 00000101(2)

00000001(2) 由此可知35=1 c语言代码: #include main() { int a=3; int b = 5; printf(%d,ab); } 按位与的用途: (1)清零 若想对一个存储单元清零,即使其全部二进制位为0,只要找一个二进制数,其中各个位符合一下条件: 原来的数中为1的位,新数中相应位为0。然后使二者进行运算,即可达到清零目的。 例:原数为43,即00101011(2),另找一个数,设它为148,即10010100(2),将两者按位与运算: 00101011(2) 10010100(2) 00000000(2) c语言源代码:

C程序设计一百例--用c语言解决数学建模问题

学会用c语言解决生活中的问题 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000)

相关文档
最新文档