当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

一个计算机运算的代码用C语言实现

更新:02-25 整理:39baobao.com
字体:

[用简单的C语言实现带括号的四则运算]#include/*库文件包含*/ #include/*用于字符串操作*/ #include/*用于exit函数*/ /************************************************************************** int check...+阅读

1. 能够实现基本的加减乘除

2.能够实现乘方计算

3.能够实现求余#include double add(double a,double b) { double s; s=a+b; return s; } double sub(double a,double b) { double s; s=a-b; return s; } double multi(double a,double b) { double s; s=a*b; return s; } double div(double a,double b) { double s; s=a/b; return s; } double power(double a,double b) { int i=0; double s=1.0; if(b==0) return s=1; else { for (i=1;i<=b;i++) s*=a; return s; } } double mod(double a,double b) { int s; s=(int)a%(int)b; return s; } void main(void) { double a,b; char c; double sum; scanf("%lf,%c,%lf",&a,&c,&b); printf("%lf,%c,%lf\n",a,c,b); switch(c) { case '+':sum=add(a,b); break; case '-':sum=sub(a,b); break; case '*':sum=multi(a,b); break; case '/':sum=div(a,b); break; case '^':sum=power(a,b); break; case '%':sum=mod(a,b); break; default:printf("input is error!"); } if(c=='%') printf("sum=%d",sum); else printf("sum=%lf",sum); getch(); }

霍夫曼编码用c语言实现

以前写的,证明最优子结构,随便一本算法书上就有. #include#include#define NIL -2 #define Size_Max_bm 30 #define left(i) (2*(i)+1) #define right(i) (2*(i)+2) #define swap(a,b) {cjys t;t=(a);(a)=(b);(b)=t;} #define parent(i) ((i)%2?((i)-1)/2:((i)-2)/2) typedef struct cjys { char sj; int pl; struct cjys *left; struct cjys *right; }cjys; typedef struct cjdl { int size; int leapsize; cjys *p; }cjdl; cjys *fpnn(void); void input(cjdl *p); cjys *fpnn(void); void zxdwh(cjys *p, int i, int leapsize); void rd(cjdl *p, cjys tp); cjys cd(cjdl *p); void hbs(cjdl *p); cjys *cjs(cjdl *p); void bls(cjys *p,int *jl, int i); void disp(char *tp, cjys *p); int main() { cjdl p; char x[255]; cjys *re=NULL; int jl[Size_Max_bm]; input(&p); re=cjs(&p); printf("对照编码图为:\n"); bls(re,jl,0); freopen("CON","r",stdin); printf("输入Huffman码(VLC):"); scanf("%s",x); disp(x,re); system("pause"); } void input(cjdl *p) { int i; cjys *tp; tp=fpnn(); printf("输入字母个数:"); scanf("%d", &p->size); p->p=malloc(sizeof(cjys)*p->size); p->leapsize=0; for(i = 0; isize;i++) { printf("输入第%d字母:",i+1),scanf(" %c",&tp->sj); printf("输入出现次数(频率整数):"),scanf("%d",&tp->pl); rd(p,*tp); } free(tp); } cjys *fpnn(void) { cjys *p=NULL; p=malloc(sizeof(cjys)); p->left=NULL; p->right=NULL; return p; } void zxdwh(cjys *p, int i, int leapsize) { int l=left(i), r=right(i), mini=i; if(lleapsize]=tp; int j=p->leapsize,k=parent(j); while(k>=0 & p->p[j].plp[k].pl) { swap(p->p[j],p->p[k]); j=k; k=parent(j); } p->leapsize++; } cjys cd(cjdl *p) { if(p->leapsize == 0) { printf("队列已空!"); exit(0); } cjys tp=p->p[0]; p->leapsize--; p->p[0]=p->p[p->leapsize]; zxdwh(p->p,0,p->leapsize); return tp; } void hbs(cjdl *p) { cjys *p1=NULL, *p2=NULL; cjys tp; p1=fpnn(); p2=fpnn(); *p1=cd(p); *p2=cd(p); tp.left=p1; tp.right=p2; tp.pl=p1->pl+p2->pl; tp.sj=NIL; rd(p,tp); } cjys *cjs(cjdl *p) { int i, n=p->leapsize; cjys *tp=NULL; tp=fpnn(); for(i = 0; ip[0]; return tp; } void bls(cjys *p, int *jl, int i) { if(p == NULL) return; if(p->sj!=NIL) { int i2; printf("%c:",p->sj); for(i2 = 0; i2left,jl,i+1); jl[i]=1; bls(p->right,jl,i+1); } void disp(char *tp, cjys *p) { cjys *ttp=NULL; int pd=0; while

(1) { ttp=p; while

(1) { if(ttp->sj != NIL) { printf("%c",ttp->sj); break; } if(*tp == '\0') { pd=1; break; } if(*tp++ == '0' ) ttp=ttp->left; else ttp=ttp->right; } if(pd) break; } }

C语言中一个算术练习程序的实现

#include

#include

#include

#include

#include

#define N 99

void sign(char n)

{

int a,b,c;

srand( (unsigned)time( NULL ) );

a=1+(int)(10*rand()/(RAND_MAX+1.0)); //随机数产生

b=1+(int)(10*rand()/(RAND_MAX+1.0));

printf("%d%c%d=",a,n,b);

scanf("%d",&c);

if(n=='+')

{

if(c==a+b) printf("答对了!\n");

else printf("答案是%d\n",a+b);

}

if(n=='-')

{

if(c==a-b) printf("答对了!\n");

else printf("答案是%d\n",a-b);

}

if(n=='*')

{

if(c==a*b) printf("答对了!\n");

else printf("答案是%d\n",a*b);

}

if(n=='/')

{

if(c==a/b) printf("答对了!\n");

else {printf("答案是%d\n",a/b);}

}

}

void menu()

{

printf("1.加法运算\n");

printf("2.减法运算\n");

printf("3.乘法运算\n");

printf("4.除法运算\n");

printf("0.退出程序\n");

}

void main()

{

int num,i;

for(i=0;;i++)

{

while(1){

menu();

printf("\n请选择功能:");

scanf("%d",&num);

switch(num)

{

case 4:sign('/');break;

case 3:sign('*');break;

case 2:sign('-');break;

case 1:sign('+');break;

case 0:return ;

}

printf("按任意键返回菜单\n");

getch();

system("cls"); //清屏

}

}

}

用c语言做一个产生加法算术题的程序

#include #include #include void main() {int i,j=0,a,b,c,sum=0,n; srand((unsigned)time(NULL)); for(i=1;;i++) {n=0; j++; if(j==51)break; if(i%2){printf("第%d题:",j);j--;} if(i%2)a=rand()%10+1; if(i%2==0) {b=rand()%10+1; loop:printf("%d+%d=",a,b); scanf("%d",&c); n++; if(c==a+b){printf("对了!\n");sum+=2;} else if(n<2){printf("不对!");sum--;goto loop;} else sum--; } } printf("您总共得了%d分",sum); }

本文地址:https://www.39baobao.com/show/29_46673.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

C语言定义一个函数实现两个集合的相加运算#include #include #include #define N 7 typedef enum { add, nul, sub, div1, yu, l, r }OP; int a[N][N] = { { 0, 0, -1, -1, -1, 1, 2 }, { 0, 0, -1, -1, -1, 1, 2 },...

c语言离散数学集合复合运算的代码 R//说明:输入的格式需要提示按输入,因为要获取正确的有序对才能进行复合运算/**************输入格式如:a b, #,# 退出*************** 输入:a b 输入:b t 输入:t d 输入:s j 输入:j i...

用C编程集合运算及实现详细c代码:#include#include#define MAX_SET_NUM 5#define YES 1#define NO 0typedef struct data_set{ int arr_A[MAX_SET_NUM]; int arr_B[MAX_SET_NUM]; int Intersection...

可进行四则运算的仿windows计算器c语言代码#include <stdio.h> void main() { double a,b; char c; scanf("%lf",&a); while((c=getchar())==' '); scanf("%lf",&b); switch(c) { case '+': { printf("%lf\n",a+b); break;...

自己用代码实现C语言库函数memcpy代码如下: void *memccpy(void *s1, const void *s2, int c, size_t n) { char *mys1 = (char *) s1; char *mys2 = (char *) s2; while (--n >= 0) if ((*mys1++ = *mys2++)...

用c语言编写一个程序实现以下功能1 2 3 4 5 6 7 8 9 10 #include "stdio.h" intmain(intargc,char*argv[]){ 5261int a,b; doublex,y; charch1,ch2; printf("Please enter the data...\n"); scanf("%d%d%lf%lf %c...

帮我随便写下用C语言实现并归排序的代码int a[100]; void Merge(int head,int mid,int tail) { int temp[tail-head+1]; int top=-1; int i=head,j=mid+1; while (i<=mid &amp;&amp; j<=tail) { if (a[i]>a[j]) te...

求解一个C语言调用递归函数实现5个数字反序打印的代码#include <stdio.h> #include <math.h> int reverse(int value); void main() { int a,value; scanf("%d",&value); a=reverse(value); printf("\n%d",a); } int reverse(int va...

计算机初级C语言程序设计就是设计一个简单程序的源代码#include<stdio.h> void main ( ) { double a,b,c,s,v; printf("input a,b,c:");//要有引号,不要回车 scanf("%lf%lf%lf",&a,&b,&c);//double对应%lf long float s=a*b; v=a*b*c; p...