(完整word版)C语言源代码

合集下载

C语言程序设计 入门源代码代码集合【精选文档】

C语言程序设计 入门源代码代码集合【精选文档】

#include 〈stdio.h〉void print_star(void){printf("*****************\n"); }void print_welcome(void){printf(”C language,welcome!\n");}void main(){print_star();print_welcome();print_star();getchar();}演示2#include "stdio。

h"int sum(int i,int j){return(i + j);}void main(){int n1,n2;printf("input 2 numbers:\n”);scanf("%d%d”,&n1,&n2);printf("the sum = %d\n",sum(n1,n2));getchar();}演示3#include "stdio。

h"int maxnum(int,int,int);main(){int a,b,c;printf("Please enter 3 numbers:\n");scanf(”%d,%d,%d”,&a,&b,&c);printf(”Maxnum is %d\n",maxnum(a,b,c));}int maxnum(int x,int y,int z){int max=x;if(y>max)max = y;if(z>max)max = z;return max;}演示4#include 〈stdio。

h〉int s1(int n){int j,s;s=0;for(j=1;j<=n;j++)s=s+j;return s;}int sum(int n){int i,s=0;for(i=1;i<=n;i++)s=s+s1(i);return s;}void main(){int n;printf(”n:”);scanf(”%d",&n);printf("s=%d\n”,sum(n));}演示5#include <stdio.h〉void func(int n){int i;for(i=n-1;i〉=1;i--)n=n+i;printf("n=%d\n",n);}void main(){int n;printf("Input n:");scanf("%d”,&n);func(n);printf(”n=%d\n",n);}演示6#include <stdio。

(完整word版)进程管理实验报告源代码

(完整word版)进程管理实验报告源代码

实验一进程管理1.目的和要求通过实验理解进程的概念,进程的组成(PCB结构),进程的并发执行和操作系统进行进程管理的相关原语(主要是进程的创建、执行、撤消)。

2.实验内容用C语言编程模拟进程管理,至少要有:创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。

3.实验环境Windows操作系统、VC++6.0C语言4.实验提示PCB结构通常包括以下信息:进程名,进程优先数,轮转时间片,进程所占用的CPU时间,进程的状态,当前队列指针等。

可根据实验的不同,PCB结构的内容可以作适当的增删。

主体程序#include "conio.h"#include "stdio.h"#include "stdlib.h"struct jincheng_type{int pid;int youxian;int daxiao;int msg;int live;};struct jincheng_type neicun[20],waicun[20];int shumu=0,pid_l;main(){int n,m,i;char a;n=1;while(n==1){system("cls");printf("\n********************************************");printf("\n* 进程演示系统*");printf("\n********************************************");printf("\n 1.创建新的进程 2.查看运行进程");printf("\n 3.换出某个进程 4.杀死运行进程");printf("\n 5.进程之间通信 6.退出");printf("\n********************************************");printf("\n请选择(1~6) ");a=getch();switch(a){case'1':create( );break;case'2':viewrun( );break;case'3':huanchu();break;case'4':kill( );break;case'5':tongxun( );break;case'6': exit(0);default: n=0;}}}create( ) /* 创建一个进程的示例(不完整的程序)*/ {if(shumu>=20){printf("\n内存已满,请先结束或换出进程\n");}else{printf("\n请输入新进程的pid\n");scanf("%d",&neicun[shumu+1].pid);printf("\n请输入新进程的优先级\n");scanf("%d",&neicun[shumu+1].youxian);printf("\n请输入新进程的大小\n");scanf("%d",&neicun[shumu+1].daxiao);printf("\n请输入新进程的消息\n");scanf("%d",&neicun[shumu+1].msg);neicun[shumu+1].live=1;shumu++;}return neicun[shumu-1].live;}viewrun( )/*查看运行进程*/{int vpid;printf("\n请输入进程的pid\n");scanf("%d",&vpid);if(vpid>0&&vpid<=20&&neicun[vpid].live==1){printf("\n进程的pid是: %d\n",neicun[vpid].pid);printf("进程的优先级是: %d\n",neicun[vpid].youxian);printf("进程的大小是:%d\n",neicun[vpid].daxiao);printf("进程的消息是:%d\n",neicun[vpid].msg);}else{printf("\n所查看运行进程不存在\n");}printf("请按回车退出查看\n");vpid=getch();}huanchu()/*换出某个进程*/{int pid1,pid2;char c;printf("\n请输入第一个替换进程的pid\n");scanf("%d",&pid1);printf("\n请输入第二个替换进程的pid\n");scanf("%d",&pid2);if(pid1>0&&pid1<=20&&neicun[pid1].live==1){if(neicun[pid1].youxian>neicun[pid2].youxian){waicun[20].pid=neicun[pid1].pid;waicun[20].youxian=neicun[pid1].youxian;waicun[20].daxiao=neicun[pid1].daxiao;waicun[20].msg=neicun[pid1].msg;neicun[pid1].pid=neicun[pid2].pid;neicun[pid1].youxian=neicun[pid2].youxian;neicun[pid1].daxiao=neicun[pid2].daxiao;neicun[pid1].msg=neicun[pid2].msg;neicun[pid2].pid=waicun[20].pid;neicun[pid2].youxian=waicun[20].youxian;neicun[pid2].daxiao=waicun[20].daxiao;neicun[pid2].msg=waicun[20].msg;printf("\n替换完成\n");printf("\n被替换进程的pid是: %d\n",waicun[20].pid); printf("被替换进程的优先级是: %d\n",waicun[20].youxian); printf("被替换进程的大小是:%d\n",waicun[20].daxiao); printf("被替换进程的消息是:%d\n",waicun[20].msg);}else{printf("\n进程优先级不够大");}}else{printf("所查看运行进程不存在");}printf("请按回车退出换出进程\n");c=getche();return;}kill()/*杀死运行进程*/{int kpid;printf("\n请输入进程的pid\n");scanf("%d",&kpid);if(kpid>0&&kpid<20&&neicun[kpid].live==1){neicun[kpid].live=0;}return;}tongxun( )/*进程之间通信*/{int tpid1,tpid2;int buffer;char d;printf("\n请输入通信源进程pid\n");scanf("%d",&tpid1);printf("\n请输入通信目的进程pid\n");scanf("%d",&tpid2);if(tpid1>0&&tpid1<20&&neicun[tpid1].live==1){buffer=neicun[tpid1].msg;neicun[tpid1].msg=neicun[tpid2].msg;neicun[tpid2].msg=buffer;printf("\n源进程的消息是: %d\n",neicun[tpid1].msg);printf("\n目的进程的消息是: %d\n",neicun[tpid2].msg);}else{printf("\n所查看运行进程不存在\n");}printf("\n请按回车退出进程通信\n");d=getch();return;}5.实验运行结果******************************************** * 进程演示系统* ********************************************1.创建新的进程2.查看运行进程3.换出某个进程4.杀死运行进程5.进程之间通信6.退出系统******************************************** 请选择(1~6)然后根据你选择的不同,出现不同的结果。

C语言游戏源代码

C语言游戏源代码

C语言游戏源代码1、简单的开机密码程序#include "conio.h"#include "string.h"#include "stdio.h"void error(){window(12,10,68,10);textbackground(15);textcolor(132);clrscr();cprintf("file or system error! you can't enter thesystem!!!"); while(1); /* 若有错误不能通过程序 */}void look(){FILE *fauto,*fbak;char *pass="c:\\windows\\password.exe"; /* 本程序的位置 */char a[25],ch;char *au="autoexec.bat",*bname="hecfback.^^^"; /*bname 是autoexec.bat 的备份 */setdisk(2); /*set currently disk c:*/chdir("\\"); /*set currently directory \*/fauto=fopen(au,"r+");if (fauto==NULL){fauto=fopen(au,"w+");if (fauto==NULL) error();}fread(a,23,1,fauto); /* 读取 autoexec.bat 前 23 各字符 */a[23]='\0';if (strcmp(a,pass)==0) /* 若读取的和 pass 指针一样就关闭文件,不然就添加 */fclose(fauto);else{fbak=fopen(bname,"w+");if (fbak==NULL) error();fwrite(pass,23,1,fbak);fputc('\n',fbak);rewind(fauto);while(!feof(fauto)){ch=fgetc(fauto);fputc(ch,fbak);}rewind(fauto);rewind(fbak);while(!feof(fbak)){ch=fgetc(fbak);fputc(ch,fauto);}fclose(fauto);fclose(fbak);remove(bname); /*del bname file*/}}void pass(){char *password="88888888";char input[60];int n;while(1){window(1,1,80,25);textbackground(0);textcolor(15);clrscr();n=0;window(20,12,60,12);textbackground(1);textcolor(15);clrscr();cprintf("password:");while(1){input[n]=getch();if (n>58) {putchar(7); break;} /* 若字符多于 58 个字符就结束本次输入 */if (input[n]==13) break;if (input[n]>=32 && input[n]<=122) /* 若字符是数字或字母才算数*/ {putchar('*');n++;}if (input[n]==8) /* 删除键 */if (n>0){cprintf("\b \b");input[n]='\0';n--;}}input[n]='\0';if (strcmp(password,input)==0)break;else{putchar(7);window(30,14,50,14);textbackground(15);textcolor(132);clrscr();cprintf("password error!");getch();}}}main(){look();pass();}2、彩色贪吃蛇#include <graphics.h>#include <stdlib.h>#define N 200#define up 0x4800#define down 0x5000#define left 0x4b00#define right 0x4d00#define esc 0x011b#define Y 0x1579#define n 0x316eint gamespeed; /* 游戏速度 */int i, key, color;int score = 0; /* 游戏分数 */char cai48H[] ={0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0E, 0x00,0x1C, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x1C, 0x00,0x00, 0x00, 0x20, 0x00, 0x38, 0x00, 0x00, 0x00,0x40, 0x00, 0x78, 0x00, 0x00, 0x01, 0x80, 0x40,0x70, 0x00, 0x00, 0x03, 0x80, 0xC0, 0xE0, 0x00,0x00, 0x07, 0x80, 0x80, 0xC0, 0x00, 0x00, 0x0E,0x11, 0x81, 0xC0, 0x00, 0x00, 0x08, 0x61, 0x01,0x80, 0x00, 0x00, 0x00, 0x23, 0x03, 0x04, 0x00,0x00, 0x02, 0x02, 0x00, 0x06, 0x00, 0x00, 0x1E,0x04, 0x00, 0x0F, 0x00, 0x00, 0x1C, 0x1F, 0x80,0xF0, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0xE0, 0x00, 文档大全实用标准0x03, 0xFF, 0xFC, 0x01, 0x80, 0x00, 0x03, 0xC0,0xFF, 0x01, 0x03, 0x80, 0x01, 0x01, 0xFF, 0x00,0x03, 0x80, 0x00, 0x01, 0x3F, 0x00, 0x07, 0x80,0x00, 0x02, 0x11, 0x00, 0x07, 0x00, 0x00, 0x00,0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00,0x0E, 0x00, 0x00, 0x08, 0x10, 0x00, 0x1C, 0x00,0x00, 0x30, 0x10, 0x00, 0x18, 0x00, 0x00, 0x70,0x10, 0x00, 0x30, 0x00, 0x01, 0xE0, 0x10, 0x00,0x70, 0x00, 0x03, 0x80, 0x10, 0x00, 0x60, 0x00,0x00, 0x00, 0x30, 0x00, 0xE0, 0x00, 0x00, 0x00,0xF0, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x70, 0x03,0xC0, 0x00, 0x00, 0x00, 0x10, 0x07, 0x80, 0x00,0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00,0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C,0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };char she48H[] ={0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00,0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00,0x00, 0x0E, 0x00, 0x00, 0x00, 0x03, 0x00, 0x07,0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00,0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,0x00, 0x00, 0xF8, 0x00, 0x00, 0x02, 0x00, 0x07,0x86, 0x00, 0x00, 0x02, 0x00, 0x18, 0x03, 0x00,0x00, 0x02, 0x00, 0x00, 0x07, 0x80, 0x00, 0x03,0xF0, 0x00, 0x07, 0x80, 0x00, 0x0F, 0xFC, 0x00,0x0C, 0x00, 0x00, 0x7E, 0x3F, 0x80, 0x00, 0x00,0x01, 0xFE, 0x1F, 0x80, 0x00, 0x00, 0x01, 0xE2,0x39, 0x8C, 0x00, 0x00, 0x00, 0xC2, 0x30, 0x08,0xE0, 0x01, 0xE0, 0x00, 0x00, 0x3F, 0x80, 0x1F,0xE0, 0x00, 0x00, 0x1E, 0x00, 0x1F, 0x80, 0x00,0x00, 0x1E, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x02, 文档大全实用标准0x38, 0x1E, 0x00, 0x00, 0x00, 0x07, 0xFC, 0x1C,0x00, 0x20, 0x00, 0x07, 0xFC, 0x18, 0x00, 0x20,0x00, 0x1F, 0x0C, 0x10, 0x00, 0x20, 0x00, 0x7C,0x04, 0x10, 0x00, 0x60, 0x01, 0xF0, 0x00, 0x10,0x00, 0x60, 0x01, 0xE0, 0x00, 0x08, 0x00, 0xF0,0x00, 0x80, 0x00, 0x08, 0x03, 0xF0, 0x00, 0x00,0x00, 0x07, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x07,0xFF, 0xF0, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xE0,0x00, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };char tun48H[] ={0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E,0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00,0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00,0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00,0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00,0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x03,0xF8, 0x00, 0x40, 0x00, 0x00, 0x00, 0x06, 0x07,0xC0, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00,0x00, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0x00, 0x00,0x0F, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x7F, 0xF8,0x00, 0x00, 0x00, 0x1F, 0xFF, 0xF8, 0x00, 0x00,0x00, 0x1F, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x1F,0xFC, 0x3C, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x0E,0x00, 0x00, 0x00, 0x04, 0x70, 0x07, 0x00, 0x00,0x00, 0x00, 0x60, 0x03, 0x80, 0x00, 0x00, 0x00,0xC0, 0x00, 0xC0, 0x00, 0x00, 0x01, 0x80, 0x00,0x30, 0x00, 0x00, 0x01, 0x00, 0x3C, 0x18, 0x00,0x00, 0x02, 0x03, 0xFF, 0x0C, 0x00, 0x00, 0x0C,0x01, 0xF0, 0x70, 0x07, 0x03, 0xF8, 0x07, 0xE0,0x70, 0x0E, 0x03, 0xFE, 0x00, 0x00, 0x38, 0x1E,0x01, 0xFE, 0x00, 0x00, 0x3F, 0xFE, 0x00, 0x0C, 文档大全实用标准0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x00, 0x00,0x1F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFE,0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };char dan48H[] ={0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF,0x00, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x80, 0x00,0x00, 0x03, 0xFF, 0x80, 0x40, 0x00, 0x00, 0x01,0xF1, 0x80, 0x40, 0x00, 0x00, 0x01, 0x81, 0x80,0xE0, 0x00, 0x00, 0x00, 0x01, 0x93, 0xF0, 0x00,0x00, 0x00, 0x01, 0xFF, 0xF0, 0x00, 0x00, 0x00,0x21, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x21, 0xF8,0x00, 0x00, 0x00, 0x00, 0x61, 0xC0, 0x00, 0x00,0x00, 0x00, 0x61, 0x80, 0x00, 0x00, 0x00, 0x00,0xF3, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00,0x00, 0x00, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0x00,0x00, 0x03, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x02,0x00, 0xFC, 0x00, 0x00, 0x00, 0x04, 0x02, 0x1F,0x00, 0x00, 0x00, 0x08, 0x03, 0x01, 0xC0, 0x00,0x00, 0x38, 0x03, 0x00, 0x7C, 0x00, 0x00, 0xF8,0x07, 0xF8, 0x3F, 0xC0, 0x01, 0xF0, 0x3F, 0xFE,0x3F, 0xF8, 0x03, 0xC1, 0xFF, 0x0F, 0x1F, 0xF8,0x00, 0x01, 0xE3, 0x0F, 0x0F, 0xF0, 0x00, 0x01,0xC3, 0x0E, 0x00, 0x00, 0x00, 0x01, 0x83, 0xFC,0x00, 0x00, 0x00, 0x00, 0xC7, 0xF8, 0x00, 0x00,0x00, 0x00, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00,0x7F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x03,0x80, 0x00, 0x00, 0x00, 0x03, 0x04, 0x00, 0x00,0xE0, 0x00, 0x00, 0x07, 0xFF, 0x81, 0xE0, 0x00,0x00, 0x07, 0xE0, 0x00, 0xE0, 0x00, 0x00, 0x03,0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 文档大全实用标准0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };char zuo16H[] ={0x18, 0xC0, 0x18, 0xC0, 0x19, 0x80, 0x31, 0xFE,0x33, 0xFE, 0x76, 0xC0, 0xF0, 0xFC, 0xB0, 0xFC,0x30, 0xC0, 0x30, 0xC0, 0x30, 0xFE, 0x30, 0xFE,0x30, 0xC0, 0x30, 0xC0, 0x30, 0xC0, 0x00, 0x00, };char zhe16H[] ={0x03, 0x00, 0x03, 0x0C, 0x1F, 0xCC, 0x1F, 0xD8,0x03, 0x30, 0xFF, 0xFE, 0xFF, 0xFE, 0x03, 0x00,0x0F, 0xF8, 0x3F, 0xF8, 0xEC, 0x18, 0xCF, 0xF8,0x0C, 0x18, 0x0F, 0xF8, 0x0F, 0xF8, 0x00, 0x00, };char tian16H[] ={0x00, 0x00, 0x3F, 0xFC, 0x3F, 0xFC, 0x31, 0x8C,0x31, 0x8C, 0x31, 0x8C, 0x3F, 0xFC, 0x3F, 0xFC,0x31, 0x8C, 0x31, 0x8C, 0x31, 0x8C, 0x3F, 0xFC,0x3F, 0xFC, 0x30, 0x0C, 0x00, 0x00, 0x00, 0x00, };char xue16H[] ={0x33, 0x18, 0x19, 0x98, 0x08, 0xB0, 0x7F, 0xFC,0x7F, 0xFC, 0x60, 0x0C, 0x1F, 0xF0, 0x1F, 0xF0,0x00, 0xC0, 0x7F, 0xFC, 0x7F, 0xFC, 0x01, 0x80,0x01, 0x80, 0x07, 0x80, 0x03, 0x00, 0x00, 0x00, };char ke16H[] ={0x00, 0x00, 0x0C, 0x18, 0xFD, 0x98, 0xF8, 0xD8,0x18, 0x58, 0xFE, 0x18, 0xFE, 0x98, 0x18, 0xD8,0x3C, 0x58, 0x7E, 0x1E, 0xDB, 0xFE, 0x9B, 0xF8,0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, };文档大全实用标准struct Food/* 定义结构体存储食物的属性*/{int x; /* 食物的坐标 */int y;int yes; /* 值为 0 表示屏幕上没有食物,值为 1 表示屏幕上有食物 */int color; /* 食物颜色 */} food;struct Snake/* 定义结构体存储蛇的属性*/{int x[N]; /* 每一节蛇的坐标*/int y[N];int color[N];/* 存储每一节蛇的颜色 */int node; /* 蛇的节数 */int direction; /* 蛇移动的方向 */int life; /* 蛇的生命,如果为1,蛇死,游戏结束*/} snake;void init(void)/* 图形驱动 */{int driver = DETECT, mode = 0;registerbgidriver(EGAVGA_driver);initgraph(&driver, &mode, "");}void drawmat(char *mat, int matsize, int x, int y, int color) /* 汉字点阵*/{int i, j, k, m;m = (matsize - 1) / 8 + 1;for(j = 0; j < matsize; j++)for(i = 0; i < m; i++)for(k = 0; k < 8; k++)if(mat[j*m+i]&(0x80 >> k))putpixel(x + i * 8 + k, y + j, color); }void showword(void){/* 调用汉字点阵输出程序,显示标题和作者信息*/drawmat(cai48H, 48, 249, -4, 7);drawmat(she48H, 48, 329, -4, 7);drawmat(tun48H, 48, 409, -4, 7); 文档大全实用标准drawmat(dan48H, 48, 489, -4, 7);drawmat(cai48H, 48, 250, -5, 4);drawmat(she48H, 48, 330, -5, 4);drawmat(tun48H, 48, 410, -5, 4);drawmat(dan48H, 48, 490, -5, 4);/* 作者田学科 */drawmat(zuo16H, 16, 515, 465, 7);drawmat(zhe16H, 16, 530, 465, 7);drawmat(tian16H, 16, 550, 465, 7);drawmat(xue16H, 16, 565, 465, 7);drawmat(ke16H, 16, 580, 465, 7);}void draw(void)/* 画出四周的墙*/{if(color == 15)color = 0;setcolor(++color);setlinestyle(SOLID_LINE, 0, 1);for(i = 30; i <= 600; i += 10){rectangle(i, 40, i + 10, 49);rectangle(i, 451, i + 10, 460);}for(i = 40; i < 450; i += 10){rectangle(30, i, 39, i + 10);rectangle(601, i, 610, i + 10);}}void prscore(void){/* 打印游戏分数*/char str[10];setfillstyle(SOLID_FILL, YELLOW);bar(50, 10, 200, 30);setcolor(6);settextstyle(0, 0, 2);sprintf(str, "score:%d", score);outtextxy(55, 15, str);文档大全实用标准}void gameover(void){cleardevice(); /* 清屏函数 */for(i = 0; i < snake.node; i++) /* 画出蛇死时的位置*/{setcolor(snake.color[i]);rectangle(snake.x[i], snake.y[i], snake.x[i] + 10, snake.y[i] + 10);}prscore(); /* 显示分数 */draw();showword();settextstyle(0, 0, 6);setcolor(7);outtextxy(103, 203, "GAME OVER");setcolor(RED);outtextxy(100, 200, "GAME OVER");}void gameplay(void)/* 玩游戏的具体过程*/{int flag, flag1;randomize();prscore();gamespeed = 50000;food.yes = 0; /* food.yes=0 表示屏幕上没有食物*/snake.life = 1; /* snake.life=1 表示蛇是活着的*/snake.direction = 4; /* 表示蛇的初始方向为向右*/snake.node = 2; /* 蛇的初始化为两节*/snake.color[0] = 2; /* 两节蛇头初始化为绿色 */snake.color[1] = 2;snake.x[0] = 100;snake.y[0] = 100;snake.x[1] = 110;snake.y[1] = 100;food.color = random(15) + 1;while(1){while(1){if(food.yes == 0) /* 如果蛇活着 */{ 文档大全实用标准while(1){flag = 1;food.yes = 1;food.x = random(56) * 10 + 40;food.y = random(40) * 10 + 50;for(i = 0; i < snake.node; i++){if(food.x == snake.x[i] && food.y == snake.y[i])flag = 0;}if(flag)break;}}if(food.yes){setcolor(food.color);rectangle(food.x, food.y, food.x + 10, food.y + 10);}for(i = snake.node - 1; i > 0; i--){snake.x[i] = snake.x[i-1];snake.y[i] = snake.y[i-1];}switch(snake.direction){case 1:snake.y[0] -= 10;break;case 2:snake.y[0] += 10;break;case 3:snake.x[0] -= 10;break;case 4:snake.x[0] += 10;break;}文档大全实用标准for(i = 3; i < snake.node; i++){if(snake.x[i] == snake.x[0] && snake.y[i]== snake.y[0]){gameover();snake.life = 0;break;}}if(snake.x[0] < 40 || snake.x[0] > 590 || snake.y[0] < 50 || snake.y[0] > 440){gameover();snake.life = 0;}if(snake.life == 0)break;if(snake.x[0] == food.x && snake.y[0] == food.y) /* 蛇吃掉食物 */{setcolor(0);rectangle(food.x, food.y, food.x + 10, food.y + 10);snake.x[snake.node] = -20;snake.y[snake.node] = -20;snake.color[snake.node] = food.color;snake.node++;food.yes = 0;food.color = random(15) + 1;score += 10;prscore();if(score % 100 == 0 && score != 0){for(i = 0; i < snake.node; i++) /* 画出蛇 */{setcolor(snake.color[i]);rectangle(snake.x[i], snake.y[i], snake.x[i] + 10, snake.y[i] + 10);}文档大全实用标准sound(200);delay(50000);delay(50000);delay(50000);delay(50000);delay(50000);delay(50000);nosound();gamespeed -= 5000;draw();}else{sound(500);delay(500);nosound();}}for(i = 0; i < snake.node; i++) /* 画出蛇 */{setcolor(snake.color[i]);rectangle(snake.x[i], snake.y[i], snake.x[i] + 10, snake.y[i] + 10);}delay(gamespeed);delay(gamespeed);flag1 = 1;setcolor(0);rectangle(snake.x[snake.node-1], snake.y[snake.node-1],snake.x[snake.node-1] + 10, snake.y[snake.node-1] + 10);if(kbhit() && flag1 == 1) /* 如果没按有效键就重新开始循环 */{flag1 = 0;key = bioskey(0);if(key == esc)exit(0);else if(key == up && snake.direction != 2)snake.direction = 1;文档大全实用标准else if(key== down &&snake.direction != 1) snake.direction = 2;else if(key== left &&snake.direction != 4) snake.direction = 3;else if(key == right &&snake.direction !=3)snake.direction = 4;}}if(snake.life == 0) /* 如果蛇死了就退出循环*/break;}}void main(void){while(1){color = 0;init();cleardevice();showword();draw();gameplay();setcolor(15);settextstyle(0, 0, 2);outtextxy(200, 400, "CONTINUE(Y/N)?");while(1){key = bioskey(0);if(key == Y || key == n || key == esc)break;}if(key == n || key == esc)break;}closegraph();}3、 c 语言实现移动电话系统#include <stdio.h>#define GRID-SIZE 5#define SELECTED -1 /* 低于矩阵中所有元素*/ 文档大全实用标准#define TRAFFIC-FILE “ traffic.dat ” /* 关于交通数据的文件*/#define NUM-TRANSMITTERS 10 /* 可用的发射器数量 */void get-traffic-data(int commuters[GRID-SIZE][GRID-SIZE],int salesforce[GRID-SIZE][GRID-SIZE],int weekends [GRID-SIZE][GRID-SIZE];voide print-matrix[GRID-SIZE][GRID-SIZE];intmain(void){int commuters[GRID-SIZE][GRID-SIZE];/* 上午 8: 30 的交通数据 */int salesforce[GRID-SIZE][GRID-SIZE]; /* 上午 11: 00 的交通数据*/int weekend[GRID-SIZE][GRID-SIZE];/* 周末交通数据 */int commuter-weight, /* 通勤人员数据的权重因子 */sale-weight,/* 营销人员数据的权重因子*/weekend-weight ;/* 周末数据的权重因子 */int location-i ,/* 每个发射器的位置 */location-j ;int current-max ;/* 和数据中当前的最大值 */int i , j ,/* 矩阵的循环计数器 */tr ;/* 发射器的循环计数器 *//* 填入并显示交通数据*/Get-traffic-data ( commuters , salesforce ,weekend);Printf (“ 8: 30 A.M.WEEKDAY TRAFFIC DATA 、 \n\n ”)print-matrix(commuters);printf( “ \n\n WEEKEND TRAFFIC DATA\n\n ” );print-matrix(salesforce);printf( “ \n\n WEEKEND TRAFFIC DATA\n\n ” );printf_matrix(weekeng);/* 请用户输入权重因子*/printf( “ \n\nPlease input the following value:\n ”);printf( “ Weight (an interger>=0) for the 8:30 muter data> ”)scanf( “ %d” ,&commuter_weight);printf( “ weight(an integer>=0) for the weekeng data> ” );scanf( “ %d” ,&weekend_weight);scanf( “ %d” ,&weekend_weight);/* 计算并显示加权后求和的数据*/for (i=0;i<GRID_SIZE;++i)for (j=0;j<GRID_SIZE;++j)summed_data[i][j]=commuter_weight*commuter[i][j]+文档大全实用标准salesforce_weight*salesforce[i][j]+weekend_weight*weekend[i][j]; printf( “ \n\nThe weighted,summed data is :\n\n ” );printf_matrix(summed_data);/* 在 summed_data 矩阵中找出 NUM_TRANSMITTERS个最大值,将坐标临时存储在location_i 和 location_j 中,然后把最后的结果坐标输出*/printf( “ \n\nLocations of the %d transmitters:\n\n ” ,NUM_TRANSMITTERS);for (tr=1;tr<=NUM_TRANSMITTERS;++tr){current_max=SELECTED ; /* 以一个过低的值为起点开始查找*/for (i=0;i<GRID_SIZE;++i){for(j=0;j<GRID_SIZE;++j){if(current_max<summed_data[i][j]){current_max=summed_data[i][j]){location_i=i;location_j=j;}}}/* 将选中的单元赋一较低的值以避免下次再选中这一元素,显示查找结果*/ summed_data[location_i][location_j]=SELECTED;printf( “ Transmitter %3d:at location %3d %3d\n ” ,tr,location_i,location_j);}return (0);}/** 把 TRAFFIC_FILE 中的交通数据填充到3 个 GRID_SIZE×GRID_SIZE数组中*/voidget_traffic_data(int commuters[GRID_SIZE] ,/* 输出 */int salesforce[GRID_SIZE][GRID_SIZE],/*输出 */int weekend[GRID_SIZE][GRID_SIZE] , /* 输出*/{int i,j; /* 循环计数器 */FILE *fp; /* 文件指针 */fq=fopen(TRAFFIC_FILE, “ r ” );for(i=0 ; i<GRID_SIZE;++i)for(j=0;j<GRID_SIZE;++j)fscanf(fp, “ %d” ,&commnters[i][j]; 文档大全实用标准for(i=0;i<GRID_SIZE;++j)for(j=0;j<GRID_SIZE;++j)fscanf(fq, “ %d”, &weekend[i][j]);fclose(fq);}/** 显示一个GRID_SIZE× GRID_SIZE整数矩阵的内容*/voidprint_matrix(int matrix[GRID_SIZE][GRID_SIZE]){int i,j; /* 循环计数器 */for(i=0;i<GRID_SIZE;++j){for(j=0;j<GRID_SIZE;++J)printf( “ %3d” ,matrix[i][j]);printf( “ \n ” );}}4、扑克牌游戏/*************************************Copyright(C) 2004-2005 vision,math,NJU .File Name: guess_card.cppAuthor: vision Version: 1.0 Data: 23-2-2004Description:给你 9张牌 , 然后让你在心中记住那张牌, 然后电脑分组让你猜你记住的牌在第几组 , 然后猜出你记住的那张牌 .Other: 出自儿童时的一个小魔术History: 修改历史**************************************/ #include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <assert.h>#define CARDSIZE 52 /* 牌的总张数*/#define SUITSIZE 13 /* 一色牌的张数*//* 扑克牌结构 */typedef struct Card{char val;/* 扑克牌面上的大小 */int kind :4; /* 扑克牌的花色*/}Card;文档大全实用标准/*************************************************Function: // riffleDescription: // 洗牌 , 然后随机的得到 9 张牌 , 要求九张牌不能有重复.Calls: //Called By: // main()Table Accessed: // 被修改的表(此项仅对于牵扯到数据库操作的程序)Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)Input: //Card card[] 牌结构 , int size 结构数组的大小Output: //Return: // voidOthers: // 此函数修改 card[] 的值 , 希望得到九张随机牌Bug: // 此函数有bug,有时会产生两个相同的牌,有待修订*************************************************/void riffle(Card *cards, int size);/*************************************************Function: // showDescription: // 显示数组的内容Calls: //Called By: // main()Table Accessed: // 被修改的表(此项仅对于牵扯到数据库操作的程序)Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)Input: //Card *card 牌结构指针 , int size 结构数组的大小Output: //Return: // voidOthers: //*************************************************/void show(const Card *cards, int size);/*************************************************Function: // groupingDescription: // 把9 张牌分别放到 3 个数组中, 每组3 张 ,a.e 分组Calls: //Called By: // main()Table Accessed: // 被修改的表(此项仅对于牵扯到数据库操作的程序)Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)Input: //Card *card 牌结构指针 , int size 结构数组的大小Output: //Return: // voidOthers: // 此函数修改 *carr1,*carr2,* carr3 的值文档大全实用标准*************************************************/void grouping(const Card *cards, Card *carr1, Card *carr2, Card *carr3);/*************************************************Function: // result_processDescription: // 用递归计算, 所选的牌Calls: // rshiftCalled By: // main()Table Accessed: // 被修改的表(此项仅对于牵扯到数据库操作的程序)Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)Input: //Card *carr1, Card *carr2, Card *carr3Output: //Return: // voidOthers: // 此函数修改 *carr1,*carr2,* carr3 的值*************************************************/Card* result_process(Card *carr1, Card *carr2, Card *carr3, int counter);/*************************************************Function: // rshiftDescription: // 右移操作Calls: //Called By: // result_processTable Accessed: // 被修改的表(此项仅对于牵扯到数据库操作的程序)Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)Input: //Card *carr1, Card *carr2, Card *carr3 ,int counterOutput: //Return: // Card*Others: // 此函数修改 *carr1,*carr2,* carr3 的值*************************************************/void rshift(Card *carr1, Card *carr2, Card *carr3, int counter);void main(){Card cards[9]; /* 存放九张牌 */Card carr1[3]; /* 第一组牌 ,cards array 1*/Card carr2[3]; /* 第二组牌 ,cards array 2*/Card carr3[3]; /* 第三组牌 ,cards array 3*/int select = 0; /* 玩家的选择 */Card *selected_card;/* 存放玩家所记住( 选 ) 的牌 */int counter = 0;riffle(cards, 9); /* 洗牌 , 得到九张牌 */puts(" 请记住一张牌千万别告诉我! 最多经过下面三次我与你的对话, 我就会知道你所记的那张牌 !");puts(" 如果想继续玩 , 请准确的回答我问你的问题, 根据提示回答!"); 文档大全实用标准puts(" 请放心 , 我不会问你你选了哪张牌的!");grouping(cards, carr1, carr2, carr3); /* 把 9 张牌分别放到3 个数组中 , 每组 3 张,a.e 分组 */show(carr1, 3);show(carr2, 3);show(carr3, 3);puts(" 请告诉我你记住的那张牌所在行数");select = getchar();switch(select)/* 分支猜你玩家记住的牌 */{case '1':selected_card = result_process(carr1, carr2, carr3, counter);break;case '2':selected_card = result_process(carr2, carr3, carr1, counter);break;case '3':selected_card = result_process(carr3, carr1, carr2, counter);break;default:puts(" 你在撒谎!不和你玩了! ");fflush(stdin);getchar();exit(0);}if( selected_card ==NULL){fflush(stdin);getchar();exit(0);}puts(" 你猜的牌为 :");show(selected_card, 1);puts(" 我猜的对吧 , 哈哈 ~~~~");fflush(stdin);getchar();}/*riffle 的原代码 */void riffle(Card *cards, int size){char deck[CARDSIZE];/* 临时数组,用于存储牌 */unsigned int seed;/* 最为产生随机数的种的 */int deckp = 0; /* 在牌的产生中起着指示作用*/文档大全实用标准seed = (unsigned int)time(NULL);srand(seed);/* 洗牌 */while (deckp < CARDSIZE){char num = rand() % CARDSIZE;if ((memchr(deck, num, deckp)) == 0){assert(!memchr(deck,num,deckp));deck[deckp] = num;deckp++;}}/* 找 9 张牌给 card*/for (deckp = 0; deckp < size; deckp++){div_t card = div(deck[deckp], SUITSIZE);cards[deckp].val = "A23456789TJQK"[card.rem]; /* 把余数给 card.val*/ cards[deckp].kind = "3456"[card.quot]; /* 把商给 card.kind*/}}/*show 的原代码,将会自动换行*/void show(const Card *cards, int size){for(int i = 0; i < size; i++){printf("%c%c ",cards[i].kind,cards[i].val);if( (i !=0) && (((i+1 ) % 3) == 0))puts("");}puts(""); /* 自动换行 */}/*grouping 的原代码 */void grouping(const Card *cards, Card *carr1, Card *carr2, Card *carr3) {int i = 0;/* 循环参数 *//* 分给 carr1 三个数 */while (i < 3){carr1[i].val = cards[i].val;carr1[i].kind = cards[i].kind; 文档大全实用标准i++;}/* 分给 carr2 接下来的三个数 */while (i < 6){carr2[i-3].val = cards[i].val;carr2[i-3].kind = cards[i].kind;i++;}/* 分给 carr3 接下来的三个数*/while (i < 9){carr3[i-6].val = cards[i].val;carr3[i-6].kind = cards[i].kind;i++;}}/*rshift 的实现 */void rshift(Card *carr1, Card *carr2, Card *carr3, int counter) {Card temp2;/* 用于存放 carr2[counter]*/Card temp3;/* 用于存放 carr3[counter]*//*temp = carr2*/temp2.val = carr2[counter].val;temp2.kind = carr2[counter].kind;/*carr2 = carr1*/carr2[counter].val = carr1[counter].val;carr2[counter].kind = carr1[counter].kind;/*temp3 = carr3*/temp3.val = carr3[counter].val;temp3.kind = carr3[counter].kind;/*carr3 = carr2*/carr3[counter].val = temp2.val;carr3[counter].kind = temp2.kind;/*carr1 = carr3*/carr1[counter].val = temp3.val;carr1[counter].kind = temp3.kind;}rshift(carr1, carr2, carr3, counter); /* 把数组的第一个元素依次右移 */ if(counter == 2)文档大全实用标准{return(&carr2[2]);}show(carr1, 3);show(carr2, 3);show(carr3, 3);puts(" 请给出你记住的牌所在行数:");fflush(stdin);int input = 1;input = getchar(); /* 获取你选的组 */switch(input){case '1':return(result_process(carr1, carr2, carr3, ++counter));break;case '2':return(&carr2[counter]);break;default:puts(" 你在撒谎!不和你玩了!");return NULL;}}5、 C 语言实现打字游戏#include "stdio.h"#include "time.h"#include "stdlib.h"#include "conio.h"#include "dos.h"#define xLine 70#define yLine 20#define full 100#define true 1#define false 0/*---------------------------------------------------------------------*/void printScreen(int level,int right,int sum,char p[yLine][xLine])/* 刷新屏幕的输出图像 */{int i,j;文档大全printf("level:%d Press 0 to exit;1 topause score:%d/%d\n",level,right,sum);/* 输出现在的等级,击中数和现在已下落总数*/printf("----------------------------------------------------------------------\n");for (i=0;i<yLine;i++){for(j=0;j<xLine;j++)printf ("%c",p[i][j]);printf("\n");}/* for (i) */printf("----------------------------------------------------------------------\n");}/* printScreen *//*---------------------------------------------------------------------*/void leave()/* 离开程序时,调用该函数结束程序。

(完整版)c语言初学必背代码

(完整版)c语言初学必背代码

//1.成绩判断#include <stdio.h>int main(){//成绩int score;printf("请输入你的成绩:\n");scanf("%d", &score);//判断if(score >=0 && score < 60){printf("不及格\n");}else if(60 <= score && score < 80){printf("中等\n");}else if(80 <= score && score < 100){printf("优秀\n");}else{printf("输入错误!\n");}}//2.计算1到100的和#include <stdio.h>int main(){int sum = 0;//存结果变量int i;for(i=1;i <= 100;i++){sum = sum + i;}printf("sum=%d\n", sum);}//3.最大公约数#include <stdio.h>//求m,n的最大公约数int main(){int m, n;int i, k;printf("请输入两个数:");scanf("%d %d", &m, &n);//三元运算符找较小的那个k = m < n ? m : n;//从较小的那个数倒着往前找for(i=k; i>=1; i--){//这是公约数if((m % i == 0) && (n % i ==0)){printf("最大公约数是%d\n", i);break;//跳出for循环}}}//4.最小公倍数#include <stdio.h>//求m,n的最小公倍数int main(){int m, n;int max, min;//m,n中较大,较小的那个int k;//max, 2*max, 3*max, .....printf("请输入两个数:");scanf("%d %d", &m, &n);//也可以交换m,n,保证m小n大max = m > n ? m : n;min = m < n ? m : n;k = max;//从max开始while(k % min != 0){k += max;//每次倍增}printf("最小公倍数是%d\n", k); }//5.金字塔#include <stdio.h>//金字塔int main(){int i;//外层int j;//内层for(i=1;i<=10;i++){//当前是在第i行//先补空格10-i个for(j=1;j<=10-i;j++){printf(" ");}//再打2i-1个*for(j=1;j<=2*i-1;j++){printf("*");}printf("\n");}}//6.九九乘法表#include <stdio.h>//打印九九乘法表int main(){int i,j;for(i=1;i<=9;i++)//外层一定是9行{for(j=1; j<=i; j++)//内层第几行走几遍{printf("%d*%d=%d ", i, j, i*j);}printf("\n");}}//7.百钱买百鸡#include <stdio.h>/**百钱买百鸡,类似1,2,5凑100银币问题*/int main2(){int i,j;//公鸡,母鸡个数for(i=0; i<=20; i++)//公鸡{for(j=0; j<=33; j++)//母鸡{if( (15*i + 9*j + (100-i-j)) == 300){printf("公鸡%d,母鸡%d,小鸡%d\n", i, j, 100-i-j);}}}}//1,2,5凑100银币问题int main3(){int count = 0;//情况数int i,j;//5分个数,2分个数for(i=0; i<=20; i++)//5分个数{for(j=0; j<=50; j++)//2分个数{if( ( 5*i + 2*j ) <= 100 ){count++;printf("%d: 5分%d个,2分%d 个,1分%d个\n", count, i, j, 100-5*i-2*j);}}}}//8.一维数组的最大值、最小值、平均值#include <stdio.h>#define N 10//宏定义常量int main(){int i;//下标索引int max, min;double sum = 0;//累加和int a[N] = {58, 58, 96, 100, 25, 55, 66, 88, 99, 77};max = a[0];//假设第一个最大min = a[0];//假设第一个最小for(i=1; i<N; i++){if(a[i] > max)//比最大值还大max = a[i];//你才是最大if(a[i] < min)//比最小值还小min = a[i];//你才是最小sum += a[i];}printf("max=%d, min=%d\n", max, min);printf("average = %.2lf\n", sum/N);}//9.二维数组的最大值、最小值、平均值#include <stdio.h>int main(){int i; //第几行int j; //第几列int a[3][4] = { {1,2,3,4}, {5,-6,7,8}, {9,19,39,0}};int max = a[0][0];//假设你最大int min = a[0][0];//假设你最小double average;//平均值double sum = 0; //总和for(i=0; i<3; i++)//必定3行{for(j=0; j<4; j++)//必定4列{printf("%5d ", a[i][j]);sum += a[i][j];if(a[i][j] > max)max = a[i][j];if(a[i][j] < min)min = a[i][j];}printf("\n");}average = sum / (3*4);printf("max=%d, min=%d, avg=%.2lf\n", max, min, average);}//10.二维数组转置#include <stdio.h>//二维数组转置:行变列,列变行int main(){int i; //第几行int j; //第几列int a[3][4] = { {1,2,3,4}, {5,-6,7,8}, {9,19,39,0}};int b[4][3];for(i=0; i<3; i++){for(j=0; j<4; j++){printf("%5d", a[i][j]);}printf("\n");}//矩阵转置for(i=0; i<3; i++){for(j=0; j<4; j++){b[j][i] = a[i][j];}}for(i=0; i<4; i++){for(j=0; j<3; j++){printf("%5d", b[i][j]);}printf("\n");}}//11.冒泡排序#include <stdio.h>#define N 10//宏定义常量int main(){int i;//下标索引int j;int tmp;//临时交换用int a[N] = {58, 58, 96, 100, 25, 55, 66, 88, 99, 77};//外层循环一定是N-1for(i=0; i<N-1; i++){//两两交换,大的往后走for(j=0; j<N-i-1; j++){//交换if(a[j] > a[j+1]){tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;}}}for(i=0; i<N; i++){printf("%d ", a[i]);;}printf("\n");}//12.结构冒泡排序#include <stdio.h>//结构定义,用户自定义类型typedef struct student{char sno[20];//学号char name[20];//姓名int age;//年龄char gender;//性别char tel[20];//电话};int main(){int i;int j;double sum = 0;struct student tmp;//两两交换临时用;//结构数组struct student team[5];for(i=0; i<5; i++){printf("请输入第%d个队员的信息:\n", i+1);scanf("%s %s %d %c %s", team[i].sno, team[i].name, &team[i].age, &team[i].gender, team[i].tel);}//按年龄冒泡排序for(i=0; i<5; i++){for(j=0; j<5-i-1; j++){//两两交换if(team[j].age > team[j+1].age){tmp = team[j];team[j] = team[j+1];team[j+1] = tmp;}}}//取值printf("%-12s %-10s %-5s %-5s %-15s\n", "学号", "姓名", "年龄", "性别", "电话");for(i=0; i<5; i++){printf("%-12s %-10s %-5d %-5c %-15s\n", team[i].sno, team[i].name, team[i].age, team[i].gender, team[i].tel);}}//13.结构数组找年龄最大值#include <stdio.h>//结构定义,用户自定义类型typedef struct student{char sno[20];//学号char name[20];//姓名int age;//年龄char gender;//性别char tel[20];//电话};int main(){int i;struct student tmp;//找最大临时用//结构数组struct student team[5];for(i=0; i<5; i++){printf("请输入第%d个队员的信息:\n", i+1);scanf("%s %s %d %c %s", team[i].sno, team[i].name, &team[i].age, &team[i].gender, team[i].tel);}//取值printf("%-12s %-10s %-5s %-5s %-15s\n ", "学号", "姓名", "年龄", "性别", "电话");for(i=0; i<5; i++){printf("%-12s %-10s %-5d %-5c %-15s\ n", team[i].sno, team[i].name, team[i].age, team[i].gender, team[i].tel);}//找学号最大的那一个tmp = team[0];for(i=1; i<5; i++){if(strcmp(team[i].sno,tmp.sno) >0 ){tmp = team[i];}}printf("学号最大的队员如下:\n");printf("%-12s %-10s %-5d %-5c %-15s\ n", tmp.sno, , tmp.age, tmp.gender, tmp.tel);}//14.文件读写#include <stdio.h>#include <stdlib.h>//结构定义,用户自定义类型typedef struct student{char sno[20];//学号char name[20];//姓名int age;//年龄char gender;//性别char tel[20];//电话};//文件读写int main(){struct student * s, * p1;//个数未知FILE * fp;int i, n = 0;char buf[1024];//fgets缓冲区//打开文件fp = fopen("e:\\test.txt", "r");while(fgets(buf, 1024, fp) != NULL)n++;fclose(fp);//指向一个可以存储n个student结构的内存空间s = (struct student *)malloc(sizeof(struct student) * n);p1 = s;//不要动头位置s的值//打开文件fp = fopen("e:\\test.txt", "r");for(i=0; i<n; i++){//从文件中读入一行fscanf(fp, "%s %s %d %c %s", p1->sno, p1->name, &p1->age, &p1->gender, p1->tel);p1++;}fclose(fp);p1 = s;for(i=0; i<3; i++){printf("%s %s %d %c %s\n", p1->sno, p1->name, p1->age, p1->gender, p1->tel);}free(s);}//15.输入三角形三边长计算周长和面积#include<stdio.h>#include<math.h>int main(){double area,perimeter,s,a,b,c;printf("请输入三边长a b c:");scanf("%lf%lf%lf",&a,&b,&c);if((a+b>c) && (a+c>b) && (b+c>a)){s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));perimeter=a+b+c;printf("area=%.2f,perimeter=%.2f\ n",area,perimeter);}else{printf("三边长无法构成三角形。

经典C语言程序100例(word文档版)

经典C语言程序100例(word文档版)

【程序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=*0.1;bonus2=bonus1+*0.75;bonus4=bonus2+*0.5;bonus6=bonus4+*0.3;bonus10=bonus6+*0.15;if(i<=)bonus=i*0.1;else if(i<=)bonus=bonus1+(i-)*0.075;else if(i<=)bonus=bonus2+(i-)*0.05;else if(i<=)bonus=bonus4+(i-)*0.03;else if(i<=)bonus=bonus6+(i-)*0.015;elsebonus=bonus10+(i-)*0.01;printf("bonus=%d",bonus);}=========================================================== 【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

(完整word版)增量式PID控制C语言代码

(完整word版)增量式PID控制C语言代码
// Integral=0
// LastError=0
//Input: PID的P、I控制常数和之前的误差量(PID *pp)
//Return:
//////////////////////////////////////////////////////////////////////
void PIDInit (PID *pp) //PID参数初始化,都置0
//增量式PID算法(需要控制的不是控制量的绝对值,而是控制量的增量)
int pError,dError,iError;
long templ;
pError = ThisError-pp->LastError;
iError = ThisError;
dError = ThisError-2*(pp->LastError)+pp->PreError;
增量式PID控制C语言代码
增量式PID控制公式:
上面△u(k)是控制量增量,“增量式PID”就是直接以这个增量进行控制。
至于参数的整定,根据响应的情况调,比如,响应慢了,我就增大kp,或者减小kd,超调大了就减小kp或增大点kd,这个规律你可以看看PID三个参数的作用:)
////////////////////////////////////////////////////////////////
{
memset ( pp,0,sizeof(PID));
//memset()的函数,它可以一字节一字节地把整个数组设置为一个指定的值。
// memset()函数在mem.h头文件中声明,它把数组的起始地址作为其第一个参数,
//第二个参数是设置数组每个字节的值,第三个参数是数组的长度(字节数,不是元素个数)。

(完整word版)纯C语言写的一个小型游戏源代码

(完整word版)纯C语言写的一个小型游戏源代码

/* A simple game*//*CopyRight: Guanlin*/ #include<stdio。

h〉#include〈stdlib。

h〉#include<string.h〉#include〈time。

h>#include〈conio。

h>#include<process.h〉struct object_fix{char name[20];char id[5];char desc[500];char action[30];char im[5];};struct object_move{char name[20];char id[5];char desc[500];int loc;int pwr;int strg;char im[5];};struct rover{char name[20];char id[5];char desc[500];int pwr;int strg;int location[2];char im[5];};struct map /* this is the map structure*/{char data[20];char add_data[20];int amount;int x; /* this were the successor keeps it's x & y values*/int y;};struct location /*this structure is for the successor lister*/{float height;char obj;};void stats_update(int selected, struct rover *p_rover){switch (selected){case 1:if(p_rover->pwr 〈 7)printf("\n\nYou do not have enough power to perform this action!\n\n”);else{(p_rover—〉pwr)—= 7;printf("You have destroyed the object!\n\n");}break;case 2:if(p_rover->pwr 〈 3)printf(”\n\nYou do not have enough power to perform this action!\n\n"); else if(p_rover—〉strg > 90)printf("\n\nYou do not have enough storage space for this object!\n\n");{(p_rover-〉pwr) —= 3;(p_rover—>strg) += 10;printf("You have collected a sample of the object!\n\n");}break;case 3:p_rover->pwr -= 10; /*Distance around object— value gained from mapper module. 1 square = -1 power*/printf(”You have avoided the object!\n\n”);break;case 4:p_rover—>pwr —= 2;printf("You have driven through the obstacle!\n\n”);break;case 5:if(p_rover—〉pwr == 100)printf(”\n\nYou do not need to charge up!\n\n");else{p_rover—〉pwr = 100;printf(”You have charged up your rover!\n\n”);}break;default:printf("\n\n*****ERROR*****\nInvalid Selection\n\n”);break;}}void action(char object, struct rover *p_rover){int selection;switch(object)case 1:printf(”\nYou have encountered: A Sandy Rock\n\n");printf(”This object can be:\n1.\tDestroyed\n2.\tCollected\nPlease choose action 1 or 2:\t"); scanf("%d”, &selection);stats_update(selection, p_rover);break;case 2:printf(”\nYou have encountered: A Solid Rock\n\n");printf(”This object can be:\n1。

CRC16校验C语言程序源码(附完整的可执行的C语言代码)

CRC16校验C语言程序源码(附完整的可执行的C语言代码)

CRC16校验C 语言程序源码 (附完整的可执行的 C 语言代码)//CRC16校验在通讯中应用广泛,这里不对其理论进行讨论,只对常见的 2种//实现方法进行测试。

方法一:查表法(256长度的校验表)速度快,准确,但是对于单片机设备存储占用大,且校验表长度大,输入时容易岀现错误 // .................. --POPULAR POLYNOMIALS ....................// CCITT: x A 16 + x A 12 + x A 5 + x A 0(0x1021) // CRC-16: x A 16 + xA15 + xA2 + xA0(0x8005)#defi neCRC_16_POLYNOMIALS0x8005const BYTE chCRCHTalbe[]=// CRC 高位字节值表{0x00, 0xC1, 0x81, 0x40, 0x01, OxCO, 0x80, 0x41, 0x01, OxCO, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1,0x81,0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1,0x81,0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41,0x00, 0xC1,0x81,0x40,0x01, 0xC0, 0x80, 0x41,0x01,0xC0, 0x80, 0x41, 0x00, 0xC1,0x81,0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1,0x81,0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01,0xC0, 0x80, 0x41,0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1,0x81,0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40 };con st BYTE chCRCLTalbe[] = // CRC 低位字节值表 {0x00, 0xC0, 0xC1,0x01,0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7,0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1代 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, OxD1, OxDO, 0x10, OxFO, 0x30, 0x31, OxF1,0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D,0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38,0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF,0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61,0xA1,0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4,0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB,0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA,0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0,0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97,0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E,0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89,0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83,0x41, 0x81, 0x80, 0x40};WORD CRC16_1(BYTE* pchMsg, WORD wDataLe n){BYTE chCRCHi = 0xFF; // 高CRC字节初始化BYTE chCRCLo = 0xFF; // 低CRC字节初始化WORD win dex; // CRC 循环中的索引while (wDataLe n--){// 计算CRCwin dex = chCRCLo A *pchMsg++ ;chCRCLo = chCRCHi A chCRCHTalbe[wl ndex]; chCRCHi =chCRCLTalbe[wi ndex];}return ((chCRCHi << 8) | chCRCLo);}方法一:列表法(简单表)con st WORD wCRCTalbeAbs[]={0x0000, 0xCC01, 0xD801, 0x1400, 0xF001, 0x3C00, 0x2800, 0xE401, 0xA001, 0x6C00, 0x7800,0xB401,0x5000, 0x9C01,0x8801,0x4400,};WORD CRC16_2(BYTE* pchMsg, WORD wDataLe n){WORD wCRC = OxFFFF;WORD i;BYTE chChar;for (i = 0; i < wDataLe n; i++){chChar = *pchMsg++;wCRC = wCRCTalbeAbs[(chChar A wCRC)& 15] A (wCRC>> 4);wCRC = wCRCTalbeAbs[((chChar >> 4) A wCRC) & 15] A (wCRC >> 4);}return wCRC;}方法二:定义法根据CRC16/MODBUS理直接计算,算法简单但对单片机计算压力大。

(完整word版)C语言课程设计----运动会分数统计系统源代码

(完整word版)C语言课程设计----运动会分数统计系统源代码

源代码:#include<stdio.h>#include<math.h>#include <conio.h>#include <process.h>#define n 2//学校数目#define m 1//男子项目数目#define w 1//女子项目数目#define null 0typedef struct{int itemnum; //项目编号int top; //取名次的数目int range[5]; //名次int mark[5]; //分数}itemnode; //定义项目结点的类型typedef struct{int schoolnum; //学校编号int score; //学校总分int mscore; //男团体总分int wscore; //女团体总分itemnode c[m+w]; //项目数组}headnode;//定义头结点类型headnode h[n];//定义一个头结点数组void inputinformation() //输入信息,建立系统{int i,j,k,s;for(i=0;i<n;i++){h[i].score=0;h[i].mscore=0;h[i].wscore=0;} //初始化头结点for(i=0;i<n;i++){printf("*****学校编号:");scanf("%d",&h[i].schoolnum); //输入头结点信息for(j=0;j<m+w;j++){printf("*****项目编号:");scanf("%d",&h[i].c[j].itemnum);printf("*****取前3名or前5名:");scanf("%d",&h[i].c[j].top);printf("*****获得几个名次:");scanf("%d",&k); //输入项目信息for(s=0;s<5;s++)h[i].c[j].range[s]=0, h[i].c[j].mark[s]=0; //初始化排名和分数for(s=0;s<k;s++){printf("*****名次:");scanf("%d",&h[i].c[j].range[s]); //输入所获名次信息if(h[i].c[j].top==3)switch(h[i].c[j].range[s]){case 0: h[i].c[j].mark[s]=0; break;case 1: h[i].c[j].mark[s]=5; break;case 2: h[i].c[j].mark[s]=3; break;case 3: h[i].c[j].mark[s]=2; break;}elseswitch(h[i].c[j].range[s]){case 0: h[i].c[j].mark[s]=0; break;case 1: h[i].c[j].mark[s]=7; break;case 2: h[i].c[j].mark[s]=5; break;case 3: h[i].c[j].mark[s]=3; break;case 4: h[i].c[j].mark[s]=2; break;case 5: h[i].c[j].mark[s]=1; break;}h[i].score=h[i].score+h[i].c[j].mark[s];//按取前三名还是取前五名分别记分if(j<=m-1)h[i].mscore=h[i].mscore+h[i].c[j].mark[s];//是男子项目则记到男子分数里面去elseh[i].wscore=h[i].wscore+h[i].c[j].mark[s];//是女子项目则记到女子项目里面去}printf("\n");}}}void output() //输出函数{int choice,i,j,k;int remember[n];int sign;do{printf("*******************1.按学校编号输出.*******************\n");printf("*******************2.按学校总分输出.*******************\n");printf("*******************3.按男团总分输出.*******************\n");printf("*******************4.按女团总分输出.*******************\n");printf("\n\n******************* 请选择编号*************************\n\n:");scanf("%d",&choice);switch(choice){case 1:for(i=0;i<n;i++){printf("\n\n*****学校编号:%d\n",h[i].schoolnum);printf("*****学校总分:%d\n" ,h[i].score);printf("*****男团总分:%d\n",h[i].mscore);printf("*****女团总分: %d\n\n\n",h[i].wscore);} //按编号顺序输出break;case 2:for(i=0;i<n;i++)remember[i]=i;for(i=0;i<n;i++){for(j=i+1;j<n;j++)if(h[remember[i]].score<h[j].score)k=remember[i];remember[i]=remember[j],remember[j]=k;} // 用冒泡排序方法,用辅助数组记住头结点下标for(i=0;i<n;i++){printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum);printf("*****学校总分:%d\n" ,h[remember[i]].score);printf("*****男团总分:%d\n",h[remember[i]].mscore);printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore);//按所记下标顺序输出} //按学校总分输出break;case 3:for(i=0;i<n;i++)remember[i]=i;for(i=0;i<n;i++){for(j=i+1;j<n;j++)if(h[remember[i]].mscore<h[j].mscore)k=remember[i];remember[i]=remember[j];remember[j]=k;}for(i=0;i<n;i++){printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum);printf("*****学校总分:%d\n" ,h[remember[i]].score);printf("*****男团总分:%d\n",h[remember[i]].mscore);printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore);} //按男团总分输出break;case 4:for(i=0;i<n;i++)remember[i]=i;for(i=0;i<n;i++){for(j=i+1;j<n;j++)if(h[remember[i]].wscore<h[j].wscore)k=remember[i];remember[i]=remember[j];remember[j]=k;}for(i=0;i<n;i++){printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum);printf("*****学校总分:%d\n" ,h[remember[i]].score);printf("*****男团总分:%d\n",h[remember[i]].mscore);printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore);}break; //按女团总分输出}printf("请选择 2 继续,0 跳出\n");scanf("%d",&sign);}while(sign==2); //循环执行输出语句}void inquiry() //查询函数{int choice;int i,j,k,s;printf("\n*****1:按学校编号查询\n");printf("\n*****2:按项目编号查询\n");printf("\n\n*****请选择查询方式:"); //提供两种查询方式scanf("%d",&choice);switch(choice){case 1:do{printf("要查询的学校编号:");scanf("%d",&i);if(i>n)printf("错误:这个学校没有参加此次运动会!\n\n\n");else{printf("要查询的项目编号:");scanf("%d",&j);if(j>m+w||j==0)printf("此次运动会没有这个项目\n\n\n");//学校编号超出范围,则输出警告else{printf("这个项目取前%d名,该学校的成绩如下:\n", h[0].c[j-1].top);for(k=0;k<5;k++)if(h[i-1].c[j-1].range[k]!=0)printf("名次:%d\n",h[i-1].c[j-1].range[k]);//输出要查询学校项目的成绩}}printf("请选择2 继续, 0 跳出\n");scanf("%d",&s);printf("\n\n\n");}while(s==2); //循环执行输出语句break;case 2:do{printf("要查询的项目编号:");scanf("%d",&s);if(s>m+w||s==0)printf("此次运动会不包括这个项目.\n\n\n");//项目编号超出范围则输出警告else{printf("该项目取前%d名,取得名次的学校\n",h[0].c[s-1].top);for(i=0; i<n;i++)for(j=0;j<5;j++)if(h[i].c[s-1].range[j]!=0)printf("学校编号:%d,名次:%d\n",h[i].schoolnum,h[i].c[s-1].range[j]);} //输出该项目取得名次学校的成绩printf("\n\n\n继续2,跳出0\n");scanf("%d",&i);printf("\n\n\n");}while(i==2);break;}}void writedata() //把数据存储在文件中{FILE *report;int i;if((report=fopen("sportsdata.txt","w"))==null){printf("不能打开文件\n");exit(1);}for(i=0;i<n;i++)fwrite(&h[i],sizeof(headnode),1,report);fclose(report);} //按头结点块写入void readdata() //读出文件中数据的函数{FILE *report;int i,j,k,s;if((report=fopen("sportsdata.txt","r"))==null){printf("file can not be opened\n");exit(1);}for(i=0;i<n;i++){printf("******学校编号:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("******学校总分:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("******男团总分:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("******女团总分:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("\n\n\n");getch();for(j=0;j<m+w;j++){printf("******项目编号:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("******所取名次数量:");fread(&k,sizeof(int),1,report);printf("%d\n",k);for(s=0;s<5;s++){fread(&k,sizeof(int),1,report);if(k!=0)printf("******名次:"),printf("%d\n",k);}for(s=0;s<5;s++){fread(&k,sizeof(int),1,report);if(k!=0) printf("******分数:"),printf("%d\n",k);}}printf("\n\n\n");getch();}fclose(report); //关闭文件} //按照读一个数据就输出一个数据的方式显示数据内容void main(){int choice;printf("======================欢迎使用======================\n"); printf("\n\n*****************运动会分数统计系统********************\n");printf("\n\n********************1.输入信息*************************\n");printf("********************2.输出信息*************************\n");printf("********************3.查询信息*************************\n");printf("********************4.调用信息*************************\n");printf("********************5.退出系统*************************\n\n\n");printf("================================================\n\n");printf("********请选择要实现步骤的编号:\n\n");scanf("%d",&choice);switch(choice){case 1:inputinformation();writedata();readdata();main();case 2:output();main();case 3:inquiry();main();case 4:readdata();main();case 5:exit(0);default:exit(0);}}。

(完整word版)增量式PID控制C语言代码

(完整word版)增量式PID控制C语言代码
LASERH=laser.Num[0];
LASERL=laser.Num[1];
}
}
///////////////////////////////////////////////////////////////////////
//rtion="0"
vPID. SetPoint = //根据实际情况设定
while(1)
{
Verror=Measure(); //得到AD的输出值
Error =vPID. SetPoint- Verror; //与设定值比较,得到误差值
tempi=PIDCal(&vPID, Error;
laser.Value+=tempi; // Value与Num[2]为共同体,共同体名laser
//增量式PID算法(需要控制的不是控制量的绝对值,而是控制量的增量)
int pError,dError,iError;
long templ;
pError = ThisError-pp->LastError;
iError = ThisError;
dError = ThisError-2*(pp->LastError)+pp->PreError;
int Integral; // Integral积分系数
int Derivative; // Derivative微分系数
int LastError; // Error[-1]前一拍误差
int PreError; // Error[-2]前两拍误差
} PID;
main()
{
PID vPID; //定义结构变量名
//Input: PID的P、I控制常数和之前的误差量(PID *pp)&当前误差量(ThisError)

C语言代码大全(可编辑修改word版)

C语言代码大全(可编辑修改word版)
------------------------------------------------------------------------摘自 宋鲁生 程序设计大赛
乘法口诀表 #include <stdio.h> #include <conio.h> void main(void) {
int i,j,x,y; clrscr(); printf("\n\n * * * 乘法口诀表 * * * \n\n"); x=9; y=5; for(i=1;i<=9;i++) {
case '2': do{ clrscr(); puts("=================================="); puts("| Please select Credit money: |"); puts("| 1. $50 |"); puts("| 2. $100 |"); puts("| 3. Return |"); puts("=================================="); CreditMoney = getch(); }while( CreditMoney!='1' && CreditMoney!='2' && CreditMoney!='3' ); switch(CreditMoney)
do{ clrscr(); puts("========================="); puts("| Please select key: |"); puts("| 1. Quary |"); puts("| 2. Credit |"); puts("| 3. Debit |"); puts("| 4. Return |"); puts("========================="); SelectKey = getch(); }while( SelectKey!='1' && SelectKey!='2' && SelectKey!='3' &&

C语言源代码【范本模板】

C语言源代码【范本模板】

剪刀石头布源代码#include<stdio.h〉#include<stdlib。

h〉main(){int d,x;{printf("请输入:1是剪刀,2是石头,3是布”);scanf(”%d”,&d);x=rand()%3;if(d==x)printf("双方平局");else if((d==1&&x==2)||(d==2&&x==3)||(d==3&&x==1)) printf(”你赢了”);elseprintf(”电脑赢了”);}}简单计算器#include〈stdio。

h〉main(){int a,b,d=0;char c;while(d==0){printf(”请开始计算,请输入需要运算的数字和运算法则,数字符号数字:”); scanf(”%d%c%d”,&a,&c,&b);switch(c){case'+':printf(”%d+%d=%d\n",a,b,a+b);break;case’-’:printf(”%d—%d=%d\n",a,b,a-b);break;case'*’:printf("%d*%d=%d\n",a,b,a*b);break;case'/’:if(0==b)printf("除法被除数不能为零!\n”) ;elseprintf(”%d/%d=%d\n",a,b,a/b);break;}}}加油站加油问题#include<stdio。

h>int main(){double a = 3。

25,b = 3.00,c= 2.75;double d = 0。

05, e = 0.10, m;int x,y,z;printf("请输入您要的加油量:”);scanf("%d",&x);printf("请输入您要的汽油种类,1—a型汽油售价3。

C语言经典编程算法参考word

C语言经典编程算法参考word

C语言经典编程算法汇集(不断补充)用pi/4=1-1/3+1/5-1/7+...公式求PI的近似值,直到最后一项的绝对值小有10的-6次方为止。

#include <math.h>main(){int i=-1;float j,s=0.0;for(j=1.0;fabs(1.0/j)>=1e-6;j=j+2.0){i=-i;s+=i*1.0/j;}s=s*4.0;printf("%f\n",s);}输入四个整数,要求按由小到大的顺序输出。

main(){int a,b,c,d;printf("请输入4个整数:");scanf("%d,%d,%d,%d",&a,&b,&c,&d);printf("\n a=%d, b=%d, c=%d, d=%d \n",a,b,c,d);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(b>c){t=b,b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("排序结果如下:\n");printf("%d %d %d %d\n",a,b,c,d);}译密码。

为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。

例如,可以按以下规律电文变为密码:将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D。

字母按上述规律转换,非字母字符不变。

如“China!”转换为“Glmre!”。

输入一行字符,要求输出其相应的密码。

#include <stdio.h>main(){char a,b[100];int i,j=0;printf("qing shu ru,yi hui che jie shu:");for(i=0;(b[i]=getchar())!='\n';i++){if((b[i]>='a'&&b[i]<='z')||(b[i]>='A'&&b[i]<='Z'))b[i]+=4;if(b[i]>'Z'&&b[i]<='Z'+4||b[i]>'z')b[i]=b[i]-26;}while(b[j]!='\0'){printf("%c",b[j]);j++;}}输入两个正整数m和n,求其最大公约数和最小公倍数。

(完整word版)C语言多文件编程

(完整word版)C语言多文件编程

C语言多文件编程现在先写一个简单的程序.学过C语言的你都能看懂。

在DEV—C++下编辑下面的程序:[cpp] view plaincopyprint?1.#include〈stdio。

h〉2.#include〈stdlib.h>3.void func1();//函数声明4.void func2();//函数声明5.void func3();//函数声明6.int main()7.{8.printf("hello world!\n”);9.func1();10.func2();11.func3();12.system(”pause”);13.return 0;14.}1.//函数实现2.void func1()3.{4.printf("我是函数1\n”);5.}6.void func2()7.{8.printf("我是函数2\n");9.}10.v oid func3()11.{12.printf(”我是函数3\n”);13.}//函数实现void func1(){printf("我是函数1\n");}void func2()这个程序够简单吧!运行结果如下:这个程序所有的函数实现都在同一文件中,代码量很少,所以你能够看懂。

假如代码量很多时,你会发现这样的程序调试很费力。

为了体现C语言模块化的编程思想,我们可不可以将上面3个函数func1,func2和func3的实现单独放在一个文件中呢?答案是肯定的。

初级方案:3个函数的声明和实现放到一个文件中,再在main函数中调用.在DEV—C++中编辑一个.h文件(这里命名为myfile.h)并保存.(编辑完一定要保存哦!)[cpp] view plaincopyprint?1.//myfile。

h2.void func1()3.{4.printf(”我是函数1\n”);5.}6.void func2()7.{8.printf(”我是函数2\n");9.}10.v oid func3()11.{12.printf(”我是函数3\n");13.}再编辑我们的main。

(word完整版)c语言程序设计编程题库

(word完整版)c语言程序设计编程题库
{int a;
float v;
printf("请输入正方形的边长:");
scanf("%d",&a);
v=volume_c(a);
printf("\n正方形的的体积为%f\n",v);
}
178
编写函数max,功能是找出两个数的较大值。在主函数中输入两个整数num1,num2,调用函数max,在主函数中输出num1和num2较大值。
难度1循环结构
4
计算s=1-2!+3!-4!+…-10!的值并输出。-3301819
#include<stdio.h>
void main()
{int n,t=1,f=-1;
int sum=0;
for(n=1;n<=10;n++)
{t=t*n;
f=-f;
sum=sum+t*f;
}
printf("%d",sum);
scanf("%d",&n) ;
i = 2;
do
{sum=sum+i;i+=2;}while(i<n);
printf("%d\n",sum) ;
}
187
编程求1+(1+2)+…+(1+2+…+n),n的值由键盘输入。要求使用for语句实现
#include <stdio.h>
voidmain( )
{
int i,j=0,n;
#include"stdio.h"
void main()

(完整word版)51单片机C语言编程100例

(完整word版)51单片机C语言编程100例

目录实例3:用单片机控制第一个灯亮 (5)实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 (6)实例5:将 P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能 (7)实例6:使用P3口流水点亮8位LED (8)实例7:通过对P3口地址的操作流水点亮8位LED (10)实例8:用不同数据类型控制灯闪烁时间 (12)实例9:用P0口、P1 口分别显示加法和减法运算结果 (14)实例10:用P0、P1口显示乘法运算结果 (15)实例11:用P1、P0口显示除法运算结果 (16)实例12:用自增运算控制P0口8位LED流水花样 (16)实例13:用P0口显示逻辑"与"运算结果 (18)实例14:用P0口显示条件运算结果 (18)实例15:用P0口显示按位"异或"运算结果 (19)实例16:用P0显示左移运算结果 (19)实例17:"万能逻辑电路"实验 (20)实例18:用右移运算流水点亮P1口8位LED (20)实例19:用if语句控制P0口8位LED的流水方向 (22)实例20:用swtich语句的控制P0口8位LED的点亮状态 (23)实例21:用for语句控制蜂鸣器鸣笛次数 (25)实例22:用while语句控制LED (27)实例23:用do-while语句控制P0口8位LED流水点亮 (29)实例24:用字符型数组控制P0口8位LED流水点亮 (31)实例25:用P0口显示字符串常量 (32)实例26:用P0 口显示指针运算结果 (34)实例27:用指针数组控制P0口8位LED流水点亮 (34)实例28:用数组的指针控制P0 口8 位LED流水点亮 (36)实例29:用P0 、P1口显示整型函数返回值 (38)实例30:用有参函数控制P0口8位LED流水速度 (39)实例31:用数组作函数参数控制流水花样 (41)实例32:用指针作函数参数控制P0口8位LED流水点亮 (42)实例33:用函数型指针控制P1口灯花样 (45)实例34:用指针数组作为函数的参数显示多个字符串 (47)实例35:字符函数ctype.h应用举例 (49)实例36:内部函数intrins.h应用举例 (50)实例37:标准函数stdlib.h应用举例 (51)实例38:字符串函数string.h应用举例 (52)实例39:宏定义应用举例2 (53)实例40:宏定义应用举例2 (54)实例41:宏定义应用举例3 (55)实例42:用定时器T0查询方式P2口8位控制LED闪烁 (56)实例43:用定时器T1查询方式控制单片机发出1KHz音频 (57)实例44:将计数器T0计数的结果送P1口8位LED显示 (58)实例45:用定时器T0的中断控制1位LED闪烁 (60)实例46:用定时器T0的中断实现长时间定时 (61)实例47:用定时器T1中断控制两个LED以不同周期闪烁 (63)实例48:用计数器T1的中断控制蜂鸣器发出1KHz音频 (65)实例49:用定时器T0的中断实现"渴望"主题曲的播放 (66)实例50-1:输出50个矩形脉冲 (72)实例50-2:计数器T0统计外部脉冲数 (73)实例51-2:定时器T0的模式2测量正脉冲宽度 (74)实例52:用定时器T0控制输出高低宽度不同的矩形波 (76)实例53:用外中断0的中断方式进行数据采集 (78)实例54-1:输出负脉宽为200微秒的方波 (79)实例54-2:测量负脉冲宽度 (80)实例55:方式0控制流水灯循环点亮 (82)实例56-1:数据发送程序 (84)实例56-2:数据接收程序 (86)实例57-1:数据发送程序 (88)实例57-2:数据接收程序 (90)实例58:单片机向PC发送数据 (92)实例59:单片机接收PC发出的数据 (94)实例60:用LED数码显示数字5 (96)实例61:用LED数码显示器循环显示数字0~9 (96)实例62:用数码管慢速动态扫描显示数字"1234" (98)实例63:用LED数码显示器伪静态显示数字1234 (99)实例64:用数码管显示动态检测结果 (101)实例65:数码秒表设计 (105)实例66:数码时钟设计 (108)实例67:用LED数码管显示计数器T0的计数值 (115)实例68:静态显示数字“59” (118)实例69:无软件消抖的独立式键盘输入实验 (118)实例70:软件消抖的独立式键盘输入实验 (119)实例71:CPU控制的独立式键盘扫描实验 (121)实例72:定时器中断控制的独立式键盘扫描实验 (127)实例73:独立式键盘控制的4级变速流水灯 (134)实例74:独立式键盘的按键功能扩展:"以一当四" (138)实例75:独立式键盘调时的数码时钟实验 (141)实例76:独立式键盘控制步进电机实验 (149)实例77:矩阵式键盘按键值的数码管显示实验 (154)实例78:矩阵式键盘按键音 (160)实例79:简易电子琴 (163)实例80:矩阵式键盘实现的电子密码锁 (175)实例81:用LCD显示字符'A' (182)实例82:用LCD循环右移显示"Welcome to China" (188)实例83:用LCD显示适时检测结果 (195)实例84:液晶时钟设计 (203)实例85:将数据"0x0f"写入AT24C02再读出送P1口显示 (215)实例86:将按键次数写入AT24C02,再读出并用1602LCD显示 (224)实例87:对I2C总线上挂接多个AT24C02的读写操作 (239)实例88:基于AT24C02的多机通信读取程序 (250)实例88:基于AT24C02的多机通信写入程序 (258)实例90:DS18B20温度检测及其液晶显示 (280)实例91:将数据"0xaa"写入X5045再读出送P1口显示 (298)实例92:将流水灯控制码写入X5045并读出送P1口显示 (305)实例93:对SPI总线上挂接多个X5045的读写操作 (313)实例94:基于ADC0832的数字电压表 (321)实例95:用DAC0832产生锯齿波电压 (333)实例96:用P1口显示红外遥控器的按键值 (334)实例97:用红外遥控器控制继电器 (339)实例98:基于DS1302的日历时钟 (344)实例99:单片机数据发送程序 (362)实例100:电机转速表设计 (365)模拟霍尔脉冲 (375)/*函数的使用和熟悉*///实例3:用单片机控制第一个灯亮#include<reg51.h> //包含51单片机寄存器定义的头文件void main(void){while(1) //无限循环P1=0xfe; //P1=1111 1110B,即P1.0输出低电平}//实例4:用单片机控制一个灯闪烁:认识单片机的工作频率#include<reg51.h> //包含单片机寄存器的头文件/****************************************函数功能:延时一段时间*****************************************/void delay(void) //两个void意思分别为无需返回值,没有参数传递{unsigned int i; //定义无符号整数,最大取值范围65535for(i=0;i<20000;i++) //做20000次空循环; //什么也不做,等待一个机器周期}/*******************************************************函数功能:主函数(C语言规定必须有也只能有1个主函数)********************************************************/void main(void){while(1) //无限循环{P1=0xfe; //P1=1111 1110B, P1.0输出低电平delay(); //延时一段时间P1=0xff; //P1=1111 1111B, P1.0输出高电平delay(); //延时一段时间}}//实例5:将 P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能#include<reg51.h> //包含单片机寄存器的头文件/*******************************************************函数功能:主函数(C语言规定必须有也只能有1个主函数)********************************************************/void main(void){while(1) //无限循环{P1=0xff; // P1=1111 1111, 熄灭LEDP0=P1; // 将 P1口状态送入P0口P2=P1; // 将 P1口状态送入P2口P3=P1; // 将 P1口状态送入P3口}}//实例6:使用P3口流水点亮8位LED #include<reg51.h> //包含单片机寄存器的头文件/****************************************函数功能:延时一段时间*****************************************/void delay(void){unsigned char i,j;for(i=0;i<250;i++)for(j=0;j<250;j++);}/******************************************************* 函数功能:主函数********************************************************/ void main(void)while(1){P3=0xfe; //第一个灯亮delay(); //调用延时函数P3=0xfd; //第二个灯亮delay(); //调用延时函数P3=0xfb; //第三个灯亮delay(); //调用延时函数P3=0xf7; //第四个灯亮delay(); //调用延时函数P3=0xef; //第五个灯亮delay(); //调用延时函数P3=0xdf; //第六个灯亮delay(); //调用延时函数P3=0xbf; //第七个灯亮delay(); //调用延时函数P3=0x7f; //第八个灯亮delay(); //调用延时函数 }}//实例7:通过对P3口地址的操作流水点亮8位LED#include<reg51.h> //包含单片机寄存器的头文件sfr x=0xb0; //P3口在存储器中的地址是b0H,通过sfr可定义8051内核单片机//的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1口的操作/****************************************函数功能:延时一段时间*****************************************/void delay(void){unsigned char i,j;for(i=0;i<250;i++)for(j=0;j<250;j++); //利用循环等待若干机器周期,从而延时一段时间 }/*****************************************函数功能:主函数******************************************/void main(void){while(1){x=0xfe; //第一个灯亮delay(); //调用延时函数x=0xfd; //第二个灯亮delay(); //调用延时函数x=0xfb; //第三个灯亮delay(); //调用延时函数x=0xf7; //第四个灯亮delay(); //调用延时函数x=0xef; //第五个灯亮delay(); //调用延时函数x=0xdf; //第六个灯亮delay(); //调用延时函数x=0xbf; //第七个灯亮delay(); //调用延时函数x=0x7f; //第八个灯亮delay(); //调用延时函数}}//实例8:用不同数据类型控制灯闪烁时间#include<reg51.h> //包含单片机寄存器的头文件/******************************************************函数功能:用整形数据延时一段时间******************************************************/void int_delay(void) //延时一段较长的时间{unsigned int m; //定义无符号整形变量,双字节数据,值域为0~65535 for(m=0;m<36000;m++); //空操作}/******************************************************函数功能:用字符型数据延时一段时间******************************************************/void char_delay(void) //延时一段较短的时间{unsigned char i,j; //定义无符号字符型变量,单字节数据,值域0~255for(i=0;i<200;i++)for(j=0;j<180;j++); //空操作}/****************************************************** 函数功能:主函数******************************************************/ void main(void){unsigned char i;while(1){for(i=0;i<3;i++){P1=0xfe; //P1.0口的灯点亮int_delay(); //延时一段较长的时间P1=0xff; //熄灭int_delay(); //延时一段较长的时间}for(i=0;i<3;i++){P1=0xef; //P1.4口的灯点亮char_delay(); //延时一段较长的时间P1=0xff; //熄灭char_delay(); //延时一段较长的时间}}}//实例9:用P0口、P1口分别显示加法和减法运算结果#include<reg51.h>void main(void){unsigned char m,n;m=43; //即十进制数2x16+11=43n=60; //即十进制数3x16+12=60P1=m+n; //P1=103=0110 0111,结果P1.3、P1.4、P1.7 口的灯被点亮 P0=n-m; //P0=17=0001 0001,结果P0.0、P0.4的灯被熄灭}//实例10:用P0、P1口显示乘法运算结果#include<reg51.h> //包含单片机寄存器的头文件void main(void){unsigned char m,n;unsigned int s;m=64;n=71;s=m*n; //s=64*71=4544,需要16位二进制数表示,高8位送P1口,低8位送P0口//由于4544=17*256+192=H3*16*16*16+H2*16*16+H1*16+H0 //两边同除以256,可得17+192/256=H3*16+H2+(H1*16+H0)/256//因此,高8位16进制数H3*16+H2必然等于17,即4544除以256的商//低8位16进制数H1*16+H0必然等于192,即4544除以256的余数P1=s/256; //高8位送P1口,P1=17=11H=0001 0001B, P1.0和P1.4口灭,其余亮P0=s%256; //低8位送P0口 , P3=192=c0H=1100 0000B,P3.1,P3.6,P3.7口灭,其余亮}//实例11:用P1、P0口显示除法运算结果#include<reg51.h> //包含单片机寄存器的头文件void main(void){P1=36/5; //求整数P0=((36%5)*10)/5; //求小数while(1); //无限循环防止程序“跑飞”}//实例12:用自增运算控制P0口8位LED流水花样#include<reg51.h> //包含单片机寄存器的头文件/******************************************************函数功能:延时一段时间******************************************************/ void delay(void){unsigned int i;for(i=0;i<20000;i++);}/****************************************************** 函数功能:主函数******************************************************/ void main(void){unsigned char i;for(i=0;i<255;i++) //注意i的值不能超过255{P0=i; //将i的值送P0口delay(); //调用延时函数}}//实例13:用P0口显示逻辑"与"运算结果#include<reg51.h> //包含单片机寄存器的头文件void main(void){P0=(4>0)&&(9>0xab);//将逻辑运算结果送P0口while(1); //设置无限循环,防止程序“跑飞”}//实例14:用P0口显示条件运算结果#include<reg51.h> //包含单片机寄存器的头文件void main(void){P0=(8>4)?8:4;//将条件运算结果送P0口,P0=8=0000 1000B while(1); //设置无限循环,防止程序“跑飞”}//实例15:用P0口显示按位"异或"运算结果#include<reg51.h> //包含单片机寄存器的头文件void main(void){P0=0xa2^0x3c;//将条件运算结果送P0口,P0=8=0000 1000Bwhile(1); //设置无限循环,防止程序“跑飞”}//实例16:用P0显示左移运算结果#include<reg51.h> //包含单片机寄存器的头文件void main(void){P0=0x3b<<2; //将左移运算结果送P0口,P0=1110 1100B=0xec while(1); //无限循环,防止程序“跑飞”}//实例17:"万能逻辑电路"实验#include<reg51.h> //包含单片机寄存器的头文件sbit F=P1^4; //将F位定义为 P1.4sbit X=P1^5; //将X位定义为 P1.5sbit Y=P1^6; //将Y位定义为 P1.6sbit Z=P1^7; //将Z位定义为 P1.7void main(void){while(1){F=((~X)&Y)|Z; //将逻辑运算结果赋给F;}}//实例18:用右移运算流水点亮P1口8位LED #include<reg51.h> //包含单片机寄存器的头文件/*****************************函数功能:延时一段时间*****************************/void delay(void)unsigned int n;for(n=0;n<30000;n++);}/*****************************函数功能:主函数*****************************/void main(void){unsigned char i;while(1){P1=0xff;delay();for(i=0;i<8;i++)//设置循环次数为8{P1=P1>>1; //每次循环P1的各二进位右移1位,高位补0 delay(); //调用延时函数}}//实例19:用if语句控制P0口8位LED的流水方向#include<reg51.h> //包含单片机寄存器的头文件sbit S1=P1^4; //将S1位定义为P1.4sbit S2=P1^5; //将S2位定义为P1.5/*****************************函数功能:主函数*****************************/void main(void){while(1){if(S1==0) //如果按键S1按下P0=0x0f; //P0口高四位LED点亮if(S2==0) //如果按键S2按下P0=0xf0; //P0口低四位LED点亮}}//实例20:用swtich语句的控制P0口8位LED的点亮状态#include<reg51.h> //包含单片机寄存器的头文件sbit S1=P1^4; //将S1位定义为P1.4/*****************************函数功能:延时一段时间*****************************/void delay(void){unsigned int n;for(n=0;n<10000;n++);}/*****************************函数功能:主函数*****************************/void main(void){unsigned char i;i=0; //将i初始化为0while(1){if(S1==0) //如果S1键按下{delay(); //延时一段时间if(S1==0) //如果再次检测到S1键按下i++; //i自增1if(i==9) //如果i=9,重新将其置为1i=1;}switch(i) //使用多分支选择语句{case 1: P0=0xfe; //第一个LED亮break;case 2: P0=0xfd; //第二个LED亮break;case 3:P0=0xfb; //第三个LED亮break;case 4:P0=0xf7; //第四个LED亮break;case 5:P0=0xef; //第五个LED亮break;case 6:P0=0xdf; //第六个LED亮break;case 7:P0=0xbf; //第七个LED亮break;case 8:P0=0x7f; //第八个LED亮break;default: //缺省值,关闭所有LEDP0=0xff;}}}//实例21:用for语句控制蜂鸣器鸣笛次数#include<reg51.h> //包含单片机寄存器的头文件sbit sound=P3^7; //将sound位定义为P3.7/****************************************函数功能:延时形成1600Hz音频****************************************/void delay1600(void){unsigned char n;for(n=0;n<100;n++);}/**************************************** 函数功能:延时形成800Hz音频****************************************/ void delay800(void){unsigned char n;for(n=0;n<200;n++);}/**************************************** 函数功能:主函数****************************************/ void main(void){unsigned int i;while(1){for(i=0;i<830;i++){sound=0; //P3.7输出低电平delay1600();sound=1; //P3.7输出高电平delay1600();}for(i=0;i<200;i++){sound=0; //P3.7输出低电平delay800();sound=1; //P3.7输出高电平delay800();}}}//实例22:用while语句控制LED#include<reg51.h> //包含单片机寄存器的头文件/****************************************函数功能:延时约60ms (3*100*200=60000μs)****************************************/void delay60ms(void){unsigned char m,n;for(m=0;m<100;m++)for(n=0;n<200;n++);}/****************************************函数功能:主函数****************************************/void main(void){unsigned char i;while(1) //无限循环{i=0; //将i初始化为0while(i<0xff) //当i小于0xff(255)时执行循环体{P0=i; //将i送P0口显示delay60ms(); //延时i++; //i自增1}}}//实例23:用do-while语句控制P0口8位LED流水点亮#include<reg51.h> //包含单片机寄存器的头文件/****************************************函数功能:延时约60ms (3*100*200=60000μs)****************************************/void delay60ms(void){unsigned char m,n;for(m=0;m<100;m++)for(n=0;n<200;n++);}/****************************************函数功能:主函数****************************************/void main(void){do{P0=0xfe; //第一个LED亮delay60ms();P0=0xfd; //第二个LED亮delay60ms();P0=0xfb; //第三个LED亮delay60ms();P0=0xf7; //第四个LED亮delay60ms();P0=0xef; //第五个LED亮delay60ms();P0=0xdf; //第六个LED亮delay60ms();delay60ms();P0=0xbf; //第七个LED亮delay60ms();P0=0x7f; //第八个LED亮delay60ms();}while(1); //无限循环,使8位LED循环流水点亮}//实例24:用字符型数组控制P0口8位LED流水点亮#include<reg51.h> //包含单片机寄存器的头文件/****************************************函数功能:延时约60ms (3*100*200=60000μs)****************************************/void delay60ms(void){unsigned char m,n;for(m=0;m<100;m++)for(n=0;n<200;n++);}/****************************************函数功能:主函数****************************************/void main(void){unsigned char i;unsigned char code Tab[ ]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //定义无符号字符型数组while(1){for(i=0;i<8;i++){P0=Tab[i];//依次引用数组元素,并将其送P0口显示 delay60ms();//调用延时函数}}}//实例25:用P0口显示字符串常量#include<reg51.h> //包含单片机寄存器的头文件/*************************************************函数功能:延时约150ms (3*200*250=150 000μs=150ms*************************************************/ void delay150ms(void){unsigned char m,n;for(m=0;m<200;m++)for(n=0;n<250;n++);}/*************************************************函数功能:主函数*************************************************/void main(void){unsigned char str[]={"Now,Temperature is :"}; //将字符串赋给字符型全部元素赋值unsigned char i;while(1){i=0; //将i初始化为0,从第一个元素开始显示while(str[i]!='\0') //只要没有显示到结束标志'\0'{P0=str[i]; //将第i个字符送到P0口显示delay150ms(); //调用150ms延时函数i++; //指向下一个待显字符}}}//实例26:用P0 口显示指针运算结果#include<reg51.h>void main(void){unsigned char *p1,*p2; //定义无符号字符型指针变量p1,p2unsigned char i,j; //定义无符号字符型数据i=25; //给i赋初值25j=15;p1=&i; //使指针变量指向i ,对指针初始化p2=&j; //使指针变量指向j ,对指针初始化P0=*p1+*p2; //*p1+*p2相当于i+j,所以P0=25+15=40=0x28//则P0=0010 1000B,结果P0.3、P0.5引脚LED熄灭,其余点亮 while(1); //无限循环,防止程序“跑飞”}//实例27:用指针数组控制P0口8位LED流水点亮#include<reg51.h>/*************************************************函数功能:延时约150ms (3*200*250=150 000μs=150ms*************************************************/void delay150ms(void){unsigned char m,n;for(m=0;m<200;m++)for(n=0;n<250;n++);}/*************************************************函数功能:主函数*************************************************/void main(void){unsigned char code Tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char*p[ ]={&Tab[0],&Tab[1],&Tab[2],&Tab[3],&Tab[4],&Tab[5],&Tab[6],&Tab[7]};unsigned char i; //定义无符号字符型数据while(1){for(i=0;i<8;i++){P0=*p[i];delay150ms();}}}//实例28:用数组的指针控制P0 口8 位LED流水点亮#include<reg51.h>/*************************************************函数功能:延时约150ms (3*200*250=150 000μs=150ms*************************************************/void delay150ms(void){unsigned char m,n;for(m=0;m<200;m++)for(n=0;n<250;n++);}/*************************************************函数功能:主函数*************************************************/void main(void){unsigned char i;unsigned char Tab[ ]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFE,0xFC,0xFB,0xF0,0xE0,0xC0,0x80,0x00,0xE7,0xDB,0xBD,0x7E,0x3C,0x18,0x00,0x81,0xC3,0xE7,0x7E,0xBD,0xDB,0xE7,0xBD,0xDB};//流水灯控制码unsigned char *p; //定义无符号字符型指针p=Tab; //将数组首地址存入指针pwhile(1){for(i=0;i<32;i++) //共32个流水灯控制码{P0=*(p+i); //*(p+i)的值等于a[i]delay150ms(); //调用150ms延时函数}}}//实例29:用P0 、P1口显示整型函数返回值#include<reg51.h>/*************************************************函数功能:计算两个无符号整数的和*************************************************/ unsigned int sum(int a,int b){unsigned int s;s=a+b;return (s);}/*************************************************函数功能:主函数*************************************************/void main(void){unsigned z;z=sum(2008,2009);P1=z/256; //取得z的高8位P0=z%256; //取得z的低8位while(1);}//实例30:用有参函数控制P0口8位LED流水速度#include<reg51.h>/*************************************************函数功能:延时一段时间*************************************************/void delay(unsigned char x){unsigned char m,n;for(m=0;m<x;m++)for(n=0;n<200;n++);}/*************************************************函数功能:主函数*************************************************/void main(void){unsigned char i;unsigned char codeTab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};//流水灯控制码while(1){//快速流水点亮LEDfor(i=0;i<8;i++) //共8个流水灯控制码{P0=Tab[i];delay(100); //延时约60ms, (3*100*200=60 000μs) }//慢速流水点亮LEDfor(i=0;i<8;i++) //共8个流水灯控制码{P0=Tab[i];delay(250); //延时约150ms, (3*250*200=150 000μs) }}}//实例31:用数组作函数参数控制流水花样#include<reg51.h>/*************************************************函数功能:延时约150ms*************************************************/void delay(void){unsigned char m,n;for(m=0;m<200;m++)for(n=0;n<250;n++);}/*************************************************函数功能:流水点亮P0口8位LED*************************************************/void led_flow(unsigned char a[8]){unsigned char i;for(i=0;i<8;i++){P0=a[i];delay();}}/*************************************************函数功能:主函数*************************************************/void main(void){unsigned char codeTab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};//流水灯控制码led_flow(Tab);}//实例32:用指针作函数参数控制P0口8位LED流水点亮#include<reg51.h>/*************************************************函数功能:延时约150ms*************************************************/void delay(void){unsigned char m,n;for(m=0;m<200;m++)for(n=0;n<250;n++);}/*************************************************函数功能:流水点亮P0口8位LED*************************************************/void led_flow(unsigned char *p) //形参为无符号字符型指针{unsigned char i;while(1){i=0; //将i置为0,指向数组第一个元素while(*(p+i)!='\0') //只要没有指向数组的结束标志{P0=*(p+i);// 取的指针所指变量(数组元素)的值,送P0口 delay(); //调用延时函数i++; //指向下一个数组元素}}}/*************************************************函数功能:主函数*************************************************/void main(void){unsigned char code Tab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F, 0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,0xFE,0xFC,0xFB,0xF0,0xE0,0xC0,0x80,0x00,0xE7,0xDB,0xBD,0x7E,0xFF,0xFF,0x3C,0x18,0x0,0x81,0xC3,0xE7,0xFF, 0xFF,0x7E};//流水灯控制码unsigned char *pointer;pointer=Tab;led_flow(pointer);}//实例33:用函数型指针控制P1口灯花样#include<reg51.h> //包含51单片机寄存器定义的头文件unsigned char code Tab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //流水灯控制码,该数组被定义为全局变量/**************************************************************函数功能:延时约150ms**************************************************************/void delay(void){unsigned char m,n;for(m=0;m<200;m++)for(n=0;n<250;n++);}/**************************************************************函数功能:流水灯左移**************************************************************/ void led_flow(void){unsigned char i;for(i=0;i<8;i++) //8位控制码{P0=Tab[i];delay();}}/************************************************************** 函数功能:主函数**************************************************************/ void main(void){void (*p)(void); //定义函数型指针,所指函数无参数,无返回值p=led_flow; //将函数的入口地址赋给函数型指针pwhile(1)(*p)(); //通过函数的指针p调用函数led_flow()}//实例34:用指针数组作为函数的参数显示多个字符串#include<reg51.h> //包含51单片机寄存器定义的头文件unsigned char code str1[ ]="Temperature is tested by DS18B20";//C语言中,字符串是作为字符数组来处理的unsigned char code str2[ ]="Now temperature is:"; //所以,字符串的名字就是字符串的首地址unsigned char code str3[ ]="The Systerm is designed by Zhang San"; unsigned char code str4[ ]="The date is 2008-9-30";unsigned char *p[ ]={str1,str2,str3,str4}; //定义p[4]为指向4个字符串的字符型指针数组/**************************************************************函数功能:延时约150ms**************************************************************/void delay(void){unsigned char m,n;for(m=0;m<200;m++)for(n=0;n<250;n++);}/**************************************************************函数功能:流水点亮P0口8位LED**************************************************************/void led_display(unsigned char *x[ ]) //形参必须为指针数组{unsigned char i,j;for(i=0;i<4;i++) //有4个字符串要显示{j=0; //指向待显字符串的第0号元素while(*(x[i]+j)!='\0') //只要第i个字符串的第j号元素不是结束标志{P0=*(x[i]+j); //取得该元素值送到P0口显示delay(); //调用延时函数j++; //指向下一个元素}}}/**************************************************************函数功能:主函数**************************************************************/void main(void)unsigned char i;while(1){for(i=0;i<4;i++)led_display(p); //将指针数组名作实际参数传递}}//实例35:字符函数ctype.h应用举例#include<reg51.h> //包含51单片机寄存器定义的头文件#include<ctype.h>void main(void){while(1){P3=isalpha('_')?0xf0:0x0f;//条件运算,若'_'是英文字母,P3=0xf0}}//实例36:内部函数intrins.h应用举例#include<reg51.h> //包含51单片机寄存器定义的头文件#include<intrins.h> //包含函数isalpha()声明的头文件/*************************************************函数功能:延时约150ms*************************************************/void delay(void){unsigned char m,n;for(m=0;m<200;m++)for(n=0;n<250;n++);}/*************************************************函数功能:主函数*************************************************/void main(void){P3=0xfe; //P3=1111 1110Bwhile(1)。

c语言源代码

c语言源代码

c语言源代码在计算机科学领域,C语言是一种被广泛应用的程序设计语言,它以其简洁、高效和可移植性而闻名。

本文将提供一些C语言的源代码示例,帮助读者更好地理解和应用这门编程语言。

1. Hello World程序#include <stdio.h>int main() {printf("Hello, World!");return 0;}上述代码是C语言中经典的Hello World程序。

它使用了stdio.h头文件,其中包含了用于输入输出的函数。

main()函数是程序的入口点,它执行printf函数并打印出"Hello, World!"的字符串。

最后,return语句表示程序正常结束。

2. 计算两个数的和#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个数的和为:%d", sum);return 0;}以上代码展示了如何用C语言编写一个简单的计算两个数的和的程序。

通过使用scanf函数,用户可以在程序运行时输入两个整数。

程序将这两个数相加,并使用printf函数打印出结果。

3. 判断一个数是否为质数#include <stdio.h>int main() {int num, i, isPrime = 1;printf("请输入一个正整数:");scanf("%d", &num);for (i = 2; i <= num / 2; ++i) {if (num % i == 0) {isPrime = 0;break;}}if (isPrime)printf("%d是质数", num);elseprintf("%d不是质数", num);return 0;}上述代码展示了如何用C语言编写一个判断一个数是否为质数的程序。

C_生成的word文档(完整源代码)

C_生成的word文档(完整源代码)

public class BiultReportForm{/// <SUMMARY></SUMMARY>/// word 应用对象///private Microsoft.Office.Interop.Word.Application _wordApplication;/// <SUMMARY></SUMMARY>/// word 文件对象///private Microsoft.Office.Interop.Word.Document _wordDocument;/// <SUMMARY></SUMMARY>/// 创建文档///public void CreateAWord(){//实例化word应用对象this._wordApplication = new Microsoft.Office.Interop.Word.ApplicationClass();Object myNothing = System.Reflection.Missing.Value;this._wordDocument = this._wordApplication.Documents.Add(ref myNothing, ref myNothing, ref myNothing, ref myNothing);}/// <SUMMARY></SUMMARY>/// 添加页眉////// <PARAM name="pPageHeader" />public void SetPageHeader(string pPageHeader){//添加页眉this._wordApplication.ActiveWindow.View.Type =Microsoft .Office .Interop .Word.WdViewType.wdOutlineView;this._wordApplication.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekPrimaryHeader;this._wordApplication.ActiveWindow.ActivePane.Selection.InsertAfter(pPageHeader);//设置中间对齐this._wordApplication.Selection.ParagraphFormat.Alignment =Microsoft .Office .Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;//跳出页眉设置this._wordApplication.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekMainDocument;}/// <SUMMARY></SUMMARY>/// 插入文字////// <PARAM name="pText" />文本信息/// <PARAM name="pFontSize" />字体打小/// <PARAM name="pFontColor" />字体颜色/// <PARAM name="pFontBold" />字体粗体/// <PARAM name="ptextAlignment" />方向public void InsertText(string pText, int pFontSize, Microsoft.Office.Interop.Word.WdColor pFontColor, int pFontBold, Microsoft.Office.Interop.Word.WdParagraphAlignment ptextAlignment){//设置字体样式以及方向this._wordApplication.Application.Selection.Font.Size = pFontSize;this._wordApplication.Application.Selection.Font.Bold = pFontBold;this._wordApplication.Application.Selection.Font.Color= pFontColor;this._wordApplication.Application.Selection.ParagraphFormat.Alignment = ptextAlignment;this._wordApplication.Application.Selection.TypeText(pText);}/// <SUMMARY></SUMMARY>/// 换行///public void NewLine(){//换行this._wordApplication.Application.Selection.TypeParagraph();}/// <SUMMARY></SUMMARY>/// 插入一个图片////// <PARAM name="pPictureFileName" />public void InsertPicture(string pPictureFileName){object myNothing = System.Reflection.Missing.Value;//图片居中显示this._wordApplication.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;this._wordApplication.Application.Selection.InlineShapes.AddPicture(pPictureFileName, ref myNothing, ref myNothing, ref myNothing);}/// <SUMMARY></SUMMARY>/// 保存文件////// <PARAM name="pFileName" />保存的文件名public void SaveWord(string pFileName){object myNothing = System.Reflection.Missing.Value;object myFileName = pFileName;object myWordFormatDocument =Microsoft .Office .Interop .Word.WdSaveFormat.wdFormatDocument;object myLockd = false;object myPassword = "";object myAddto = true;try{this._wordDocument.SaveAs(ref myFileName, ref myWordFormatDocument, ref myLockd, ref myPassword, ref myAddto, ref myPassword,ref myLockd, ref myLockd, ref myLockd, ref myLockd, ref myNothing, ref myNothing, ref myNothing,ref myNothing, ref myNothing, ref myNothing);}catch{throw new Exception("导出word文档失败!");}}}using Word;下面的例子中包括C#对Word文档的创建、插入表格、设置样式等操作:(例子中代码有些涉及数据信息部分被省略,重要是介绍一些C#操作word文档的方法)public string CreateWordFile(string CheckedInfo)...{string message = "";try...{Object Nothing = System.Reflection.Missing.Value;Directory.CreateDirectory("C:/CNSI"); //创建文件所在目录string name = "CNSI_" + DateTime.Now.ToShortString()+".doc";object filename = "C://CNSI//" + name; //文件保存路径//创建Word文档Word.Application WordApp = new Word.ApplicationClass();Word.Document WordDoc = WordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);//添加页眉WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView;WordApp.ActiveWindow.View.SeekView =WdSeekView.wdSeekPrimaryHeader;WordApp.ActiveWindow.ActivePane.Selection.InsertAfter("[页眉内容]");WordApp.Selection.ParagraphFormat.Alignment =Word.WdParagraphAlignment.wdAlignParagraphRight;//设置右对齐WordApp.ActiveWindow.View.SeekView =WdSeekView.wdSeekMainDocument;//跳出页眉设置WordApp.Selection.ParagraphFormat.LineSpacing = 15f;//设置文档的行间距//移动焦点并换行object count = 14;object WdLine = Word.WdUnits.wdLine;//换一行;WordApp.Selection.MoveDown(ref WdLine, ref count, ref Nothing);//移动焦点WordApp.Selection.TypeParagraph();//插入段落//文档中创建表格Word.Table newTable = WordDoc.Tables.Add(WordApp.Selection.Range, 12, 3, ref Nothing, ref Nothing);//设置表格样式newTable.Borders.OutsideLineStyle =Word.WdLineStyle.wdLineStyleThickThinLargeGap;newTable.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;newTable.Columns[1].Width = 100f;newTable.Columns[2].Width = 220f;newTable.Columns[3].Width = 105f;//填充表格内容newTable.Cell(1, 1).Range.Text = "产品详细信息表";newTable.Cell(1, 1).Range.Bold = 2;//设置单元格中字体为粗体//合并单元格newTable.Cell(1, 1).Merge(newTable.Cell(1, 3));WordApp.Selection.Cells.VerticalAlignment =Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中WordApp.Selection.ParagraphFormat.Alignment =Word.WdParagraphAlignment.wdAlignParagraphCenter;//水平居中//填充表格内容newTable.Cell(2, 1).Range.Text = "产品基本信息";newTable.Cell(2, 1).Range.Font.Color = Word.WdColor.wdColorDarkBlue;//设置单元格内字体颜色//合并单元格newTable.Cell(2, 1).Merge(newTable.Cell(2, 3));WordApp.Selection.Cells.VerticalAlignment =Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//填充表格内容newTable.Cell(3, 1).Range.Text = "品牌名称:";newTable.Cell(3, 2).Range.Text = BrandName;//纵向合并单元格newTable.Cell(3, 3).Select();//选中一行object moveUnit = Word.WdUnits.wdLine;object moveCount = 5;object moveExtend = Word.WdMovementType.wdExtend;WordApp.Selection.MoveDown(ref moveUnit, ref moveCount, ref moveExtend);WordApp.Selection.Cells.Merge();//插入图片string FileName = Picture;//图片所在路径object LinkToFile = false;object SaveWithDocument = true;object Anchor = WordDoc.Application.Selection.Range;WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);WordDoc.Application.ActiveDocument.InlineShapes[1].Width = 100f;//图片宽度WordDoc.Application.ActiveDocument.InlineShapes[1].Height = 100f;//图片高度//将图片设置为四周环绕型Word.Shape s =WordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape();s.WrapFormat.Type = Word.WdWrapType.wdWrapSquare;newTable.Cell(12, 1).Range.Text = "产品特殊属性";newTable.Cell(12, 1).Merge(newTable.Cell(12, 3));//在表格中增加行WordDoc.Content.Tables[1].Rows.Add(ref Nothing);st.Range.Text = "文档创建时间:" +DateTime.Now.ToString();//“落款”st.Alignment =Word.WdParagraphAlignment.wdAlignParagraphRight;//文件保存WordDoc.SaveAs(ref filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);WordDoc.Close(ref Nothing, ref Nothing, ref Nothing);WordApp.Quit(ref Nothing, ref Nothing, ref Nothing);message=name+"文档生成成功,以保存到C:CNSI下";}catch...{message = "文件导出异常!";}return message;}先访问注册表,得到执行文件路径。

麻将C语言源代码(求完善版)

麻将C语言源代码(求完善版)

非吾之力,此资源:求更改,求完善,求分享!邮箱:*****************麻将源代码*/#include "dos.h"#include "stdio.h"#include "graphics.h"#include "bios.h"#include "conio.h"#include "stdlib.h"unsigned char far *video_buffer=(char far *)0xA0000000L;#define VGA256 0x13 /*图形模式13h*/#define TEXT_MODE 0x03 /*普通文本模式*/#define SETVGA Set_Video_Mode(VGA256)#define OUTVGA Set_Video_Mode(TEXT_MODE)#define BYTE unsigned char#define WORD unsigned int#define DWORD unsigned int#define ESC 283#define LEFT 19200#define RIGHT 19712#define H 9064#define ENTER 7181unsigned long int z=54400,zz=0,zy=0,zyy=0,z1=0,zl=10140;int key=0,keyy=0,sing=0,sing1=0,second=0,threes=0;struct chi{int lg;int lgg;}ch[13];struct mj{ char *name; /*名字*/int data1; /*是否已出,无用了*/int data2; /*是否在手中,1为自己,2为对方*/int number; /*同一个花色的第几张,共4张*/}m[136]={"1.bmp",0,0,1,"1.bmp",0,0,2,"1.bmp",0,0,3,"1.bmp",0,0,4,"2.bmp",0,0,1,"2.bmp",0,0,2,"2.bmp",0,0,3,"2.bmp",0,0,4,"3.bmp",0,0,1,"3.bmp",0,0,2,"3.bmp",0,0,3,"3.bmp",0,0,4,"4.bmp",0,0,1,"4.bmp",0,0,2,"4.bmp",0,0,3,"4.bmp",0,0,4,"5.bmp",0,0,1,"5.bmp",0,0,2,"5.bmp",0,0,3,"5.bmp",0,0,4,"6.bmp",0,0,1,"6.bmp",0,0,2,"6.bmp",0,0,3,"6.bmp",0,0,4,"7.bmp",0,0,1,"7.bmp",0,0,2,"7.bmp",0,0,3,"7.bmp",0,0,4,"8.bmp",0,0,1,"8.bmp",0,0,2,"8.bmp",0,0,3,"8.bmp",0,0,4,"9.bmp",0,0,1,"9.bmp",0,0,2,"9.bmp",0,0,3,"9.bmp",0,0,4,"10.bmp",0,0,1,"10.bmp",0,0,2,"10.bmp",0,0,3,"10.bmp",0,0,4,"11.bmp",0,0,1,"11.bmp",0,0,2,"11.bmp",0,0,3,"11.bmp",0,0,4,"12.bmp",0,0,1,"12.bmp",0,0,2,"12.bmp",0,0,3,"12.bmp",0,0,4,"13.bmp",0,0,1,"13.bmp",0,0,2,"13.bmp",0,0,3,"13.bmp",0,0,4,"14.bmp",0,0,1,"14.bmp",0,0,2,"14.bmp",0,0,3,"14.bmp",0,0,4,"15.bmp",0,0,1,"15.bmp",0,0,2,"15.bmp",0,0,3,"15.bmp",0,0,4,"19.bmp",0,0,4,"20.bmp",0,0,1,"20.bmp",0,0,2,"20.bmp",0,0,3,"20.bmp",0,0,4, "21.bmp",0,0,1,"21.bmp",0,0,2,"21.bmp",0,0,3,"21.bmp",0,0,4,"22.bmp",0,0,1, "22.bmp",0,0,2,"22.bmp",0,0,3,"22.bmp",0,0,4,"23.bmp",0,0,1,"23.bmp",0,0,2, "23.bmp",0,0,3,"23.bmp",0,0,4,"24.bmp",0,0,1,"24.bmp",0,0,2,"24.bmp",0,0,3, "24.bmp",0,0,4,"25.bmp",0,0,1,"25.bmp",0,0,2,"25.bmp",0,0,3,"25.bmp",0,0,4, "26.bmp",0,0,1,"26.bmp",0,0,2,"26.bmp",0,0,3,"26.bmp",0,0,4,"27.bmp",0,0,1, "27.bmp",0,0,2,"27.bmp",0,0,3,"27.bmp",0,0,4,"28.bmp",0,0,1,"28.bmp",0,0,2, "28.bmp",0,0,3,"28.bmp",0,0,4,"29.bmp",0,0,1,"29.bmp",0,0,2,"29.bmp",0,0,3, "29.bmp",0,0,4,"30.bmp",0,0,1,"30.bmp",0,0,2,"30.bmp",0,0,3,"30.bmp",0,0,4, "31.bmp",0,0,1,"31.bmp",0,0,2,"31.bmp",0,0,3,"31.bmp",0,0,4,"32.bmp",0,0,1, "32.bmp",0,0,2,"32.bmp",0,0,3,"32.bmp",0,0,4,"33.bmp",0,0,1,"33.bmp",0,0,2, "33.bmp",0,0,3,"33.bmp",0,0,4,"34.bmp",0,0,1,"34.bmp",0,0,2,"34.bmp",0,0,3, "34.bmp"};struct every{ int *k; /*名字*/int oneorfour; /*同一张牌的第几张*/int number; /*第几张牌136*/int p;int g;int c;int d[2];};struct me{ int m; /*定义有几张牌,开始有13张随着游戏的进行,会越来越小*/int p; /*乓对方*/int c; /*吃对方*/int g; /*杠*/struct every pp[14]; /*存放手上的牌*/}me;struct computer{ int m;int p;int c;int g;struct every pp[14];}computer,comp;/* 设置调色板 */void Set_Palette(int Color,BYTE r,BYTE g,BYTE b){outportb(0x3c8,Color); /*0x3c8写端口写色号*/outportb(0x3c9,r); /*0x3c9数据端口 R、G、B的比例*/outportb(0x3c9,g);outportb(0x3c9,b);}/*0x3c7读端口 0x3c6计算机调色板寄存器调用端口*//* 设置显示模式的函数 */void Set_Video_Mode(int mode){union REGS inregs,outregs; /*定义输入和返回寄存器*/}void h_line(int x0,int x1,int y,unsigned int color) { unsigned int address,n,temp;if(x0>x1){temp=x1;x1=x0;x0=temp;}address=320*y+x0;for(n=0;n<=x1-x0;n++){video_buffer[address]=color;address+=1;}}void p_pixel(int x,int y,unsigned int color){ video_buffer[y*320+x]=color;}void s_square(int x,int y,int side,int color){h_line(x,x+side,y,color);h_line(x,x+side,y+side,color);v_line(y,y+side,x,color);v_line(y,y+side,x+side,color);}void r_rectangle(int x1,int y1,int x2,int y2,int color) {h_line(x1,x2,y1,color);h_line(x1,x2,y2,color);v_line(y1,y2,x1,color);v_line(y1,y2,x2,color);}void fillRectangle(int x1,int y1,int x2,int y2,int color) {int i;for(i=y1;i<=y2;i++){h_line(x1,x2,i,color);}}void showbmp(int l)bmp=fopen(me.pp[l].k,"rb");fseek(bmp,54,SEEK_SET);for(i=0;i<256;i++){palette[i][2]=fgetc(bmp)>>2;palette[i][1]=fgetc(bmp)>>2;palette[i][0]=fgetc(bmp)>>2;fgetc(bmp);Set_Palette(i,palette[i][0],palette[i][1],palette[i][2]); }for (y=0;y<30;y++)for(x=0;x<20;x++)pokeb(0xa000,y*320+x+z+zz+z1,fgetc(bmp)); fclose(bmp);}void showbmpd(int l){ FILE *bmp;int i,x,y;BYTE palette[256][3];bmp=fopen(me.pp[l].k,"rb");fseek(bmp,54,SEEK_SET);for(i=0;i<256;i++){palette[i][2]=fgetc(bmp)>>2;palette[i][1]=fgetc(bmp)>>2;palette[i][0]=fgetc(bmp)>>2;fgetc(bmp);Set_Palette(i,palette[i][0],palette[i][1],palette[i][2]); }for (y=0;y<30;y++)for(x=0;x<20;x++)pokeb(0xa000,y*320+x+zyy,fgetc(bmp));fclose(bmp);}void showybmp(int ll){ FILE *bmp;int i,x,y;BYTE palette[256][3];bmp=fopen(computer.pp[ll].k,"rb");fseek(bmp,54,SEEK_SET);for(i=0;i<256;i++){palette[i][2]=fgetc(bmp)>>2;palette[i][1]=fgetc(bmp)>>2;palette[i][0]=fgetc(bmp)>>2;fgetc(bmp);Set_Palette(i,palette[i][0],palette[i][1],palette[i][2]); }for (y=0;y<30;y++)for(x=0;x<20;x++)void showcbmp(int ll){ FILE *bmp;int i,x,y;BYTE palette[256][3];bmp=fopen(computer.pp[ll].k,"rb");fseek(bmp,54,SEEK_SET);for(i=0;i<256;i++){palette[i][2]=fgetc(bmp)>>2;palette[i][1]=fgetc(bmp)>>2;palette[i][0]=fgetc(bmp)>>2;fgetc(bmp);Set_Palette(i,palette[i][0],palette[i][1],palette[i][2]); }for (y=0;y<30;y++)for(x=0;x<20;x++)pokeb(0xa000,y*320+x+zyy,fgetc(bmp));fclose(bmp);}void bmpp(int number){ FILE *bmp;int i,x,y;BYTE palette[256][3];bmp=fopen(m[number].name,"rb");fseek(bmp,54,SEEK_SET);for(i=0;i<256;i++){palette[i][2]=fgetc(bmp)>>2;palette[i][1]=fgetc(bmp)>>2;palette[i][0]=fgetc(bmp)>>2;fgetc(bmp);Set_Palette(i,palette[i][0],palette[i][1],palette[i][2]); }for (y=0;y<30;y++)for(x=0;x<20;x++)pokeb(0xa000,y*320+x+zl,fgetc(bmp));fclose(bmp);}void comlipai() /*整理电脑的牌*/{ int n,j,u;for(j=n;j<computer.m;j++){if(computer.pp[n].number>computer.pp[j+1].number) {lingshi=computer.pp[n].k;computer.pp[n].k=computer.pp[j+1].k;computer.pp[j+1].k=lingshi;u=computer.pp[n].oneorfour;computer.pp[n].oneorfour=computer.pp[j+1].oneorfour; computer.pp[j+1].oneorfour=u;u=computer.pp[n].number;computer.pp[n].number=computer.pp[j+1].number; computer.pp[j+1].number=u;}elseif(computer.pp[n].number==computer.pp[j+1].number)if(computer.pp[n].oneorfour>computer.pp[j+1].oneorfour) {lingshi=computer.pp[n].k;computer.pp[n].k=computer.pp[j+1].k;computer.pp[j+1].k=lingshi;u=computer.pp[n].oneorfour;computer.pp[n].oneorfour=computer.pp[j+1].oneorfour; computer.pp[j+1].oneorfour=u;u=computer.pp[n].number;computer.pp[n].number=computer.pp[j+1].number; computer.pp[j+1].number=u;}}}void melipai(){ int n,j,u;int *lingshi;for(n=0;n<me.m;n++)for(j=n;j<me.m;j++){if(me.pp[n].number>me.pp[j+1].number){lingshi=me.pp[n].k;me.pp[n].k=me.pp[j+1].k;me.pp[j+1].k=lingshi;u=me.pp[n].oneorfour;me.pp[n].oneorfour=me.pp[j+1].oneorfour;me.pp[j+1].oneorfour=u;u=me.pp[n].number;me.pp[n].number=me.pp[j+1].number;me.pp[j+1].number=u;}elseif(me.pp[n].number==me.pp[j+1].number)me.pp[n].k=me.pp[j+1].k;me.pp[j+1].k=lingshi;u=me.pp[n].oneorfour;me.pp[n].oneorfour=me.pp[j+1].oneorfour;me.pp[j+1].oneorfour=u;u=me.pp[n].number;me.pp[n].number=me.pp[j+1].number;me.pp[j+1].number=u;}}}void rgzn(int c) /*本程序涵数的核心针对电脑的牌*/ { int b=0,lg,lgg,logo,logoo,pg=0,gp=0,cs=0,f=0;if(me.pp[c].number<=35 && me.pp[c].number>=0){logo=1;if(me.pp[c].number<=3 && me.pp[c].number>=0) logoo=1;else if(me.pp[c].number<=7 && me.pp[c].number>=4) logoo=2;else if(me.pp[c].number<=11 && me.pp[c].number>=8) logoo=3;else if(me.pp[c].number<=15 && me.pp[c].number>=12) logoo=4;else if(me.pp[c].number<=19 && me.pp[c].number>=16) logoo=5;else if(me.pp[c].number<=23 && me.pp[c].number>=20) logoo=6;[1] [2]else if(me.pp[c].number<=27 && me.pp[c].number>=24) logoo=7;else if(me.pp[c].number<=31 && me.pp[c].number>=28) logoo=8;else if(me.pp[c].number<=35 && me.pp[c].number>=32) logoo=9;}if(me.pp[c].number<=39 && me.pp[c].number>=36) logoo=1;else if(me.pp[c].number<=43 && me.pp[c].number>=40) logoo=2;else if(me.pp[c].number<=47 && me.pp[c].number>=44) logoo=3;else if(me.pp[c].number<=51 && me.pp[c].number>=48) logoo=4;else if(me.pp[c].number<=55 && me.pp[c].number>=52) logoo=5;else if(me.pp[c].number<=59 && me.pp[c].number>=56) logoo=6;else if(me.pp[c].number<=63 && me.pp[c].number>=60) logoo=7;else if(me.pp[c].number<=67 && me.pp[c].number>=64) logoo=8;else if(me.pp[c].number<=71 && me.pp[c].number>=68) logoo=9;}else if(me.pp[c].number<=107 && me.pp[c].number>=72) {logo=3;if(me.pp[c].number<=75 && me.pp[c].number>=72) logoo=1;else if(me.pp[c].number<=79 && me.pp[c].number>=76) logoo=2;else if(me.pp[c].number<=83 && me.pp[c].number>=80) logoo=3;else if(me.pp[c].number<=87 && me.pp[c].number>=84) logoo=4;else if(me.pp[c].number<=91 && me.pp[c].number>=88) logoo=5;else if(me.pp[c].number<=95 && me.pp[c].number>=92) logoo=6;else if(me.pp[c].number<=99 && me.pp[c].number>=96) logoo=7;else if(me.pp[c].number<=103 && me.pp[c].number>=100) logoo=8;else if(me.pp[c].number<=107 && me.pp[c].number>=104) logoo=9;}else if(me.pp[c].number<=135 && me.pp[c].number>=108) {logo=4;if(me.pp[c].number<=111 && me.pp[c].number>=108) logoo=1;else if(me.pp[c].number<=115 && me.pp[c].number>=112) logoo=2;else if(me.pp[c].number<=119 && me.pp[c].number>=116) logoo=3;else if(me.pp[c].number<=131 && me.pp[c].number>=128)logoo=6;else if(me.pp[c].number<=135 && me.pp[c].number>=132)logoo=7;}while(b<=computer.m){if(computer.pp[b].number<=35 && computer.pp[b].number>=0)/*假定电脑经过分析后出了第一张牌*/{lg=1;computer.pp[b].d[0]=1;if(computer.pp[b].number<=3 && computer.pp[b].number>=0){lgg=1;computer.pp[b].d[1]=1;}else if(computer.pp[b].number<=7 && computer.pp[b].number>=4) {lgg=2;computer.pp[b].d[1]=2;}else if(computer.pp[b].number<=11 && computer.pp[b].number>=8) {lgg=3;computer.pp[b].d[1]=3;}else if(computer.pp[b].number<=15 && computer.pp[b].number>=12) {lgg=4;computer.pp[b].d[1]=4;}else if(computer.pp[b].number<=19 && computer.pp[b].number>=16) {lgg=5;computer.pp[b].d[1]=5;}else if(computer.pp[b].number<=23 && computer.pp[b].number>=20) {lgg=6;computer.pp[b].d[1]=6;}else if(computer.pp[b].number<=27 && computer.pp[b].number>=24) {lgg=7;computer.pp[b].d[1]=7;computer.pp[b].d[1]=8;}else if(computer.pp[b].number<=35 && computer.pp[b].number>=32) {lgg=9;computer.pp[b].d[1]=9;}}else if(computer.pp[b].number<=71 && computer.pp[b].number>=36) {lg=2;computer.pp[b].d[0]=2;if(computer.pp[b].number<=39 && computer.pp[b].number>=36) {lgg=1;computer.pp[b].d[1]=1;}else if(computer.pp[b].number<=43 && computer.pp[b].number>=40) {lgg=2;computer.pp[b].d[1]=2;}else if(computer.pp[b].number<=47 && computer.pp[b].number>=44) {lgg=3;computer.pp[b].d[1]=3;}else if(computer.pp[b].number<=51 && computer.pp[b].number>=48) {lgg=4;computer.pp[b].d[1]=4;}else if(computer.pp[b].number<=55 && computer.pp[b].number>=52) {lgg=5;computer.pp[b].d[1]=5;}else if(computer.pp[b].number<=59 && computer.pp[b].number>=56) {lgg=6;computer.pp[b].d[1]=6;}else if(computer.pp[b].number<=63 && computer.pp[b].number>=60) {lgg=7;computer.pp[b].d[1]=7;}else if(computer.pp[b].number<=67 && computer.pp[b].number>=64) {else if(computer.pp[b].number<=71 && computer.pp[b].number>=68) {lgg=9;computer.pp[b].d[1]=9;}}else if(computer.pp[b].number<=107 && computer.pp[b].number>=72) {lg=3;computer.pp[b].d[0]=3;if(computer.pp[b].number<=75 && computer.pp[b].number>=72){lgg=1;computer.pp[b].d[1]=1;}else if(computer.pp[b].number<=79 && computer.pp[b].number>=76) {lgg=2;computer.pp[b].d[1]=2;}else if(computer.pp[b].number<=83 && computer.pp[b].number>=80) {lgg=3;computer.pp[b].d[1]=3;}else if(computer.pp[b].number<=87 && computer.pp[b].number>=84) {lgg=4;computer.pp[b].d[1]=4;}else if(computer.pp[b].number<=91 && computer.pp[b].number>=88) {lgg=5;computer.pp[b].d[1]=5;}else if(computer.pp[b].number<=95 && computer.pp[b].number>=92) {lgg=6;computer.pp[b].d[1]=6;}else if(computer.pp[b].number<=99 && computer.pp[b].number>=96) {lgg=7;computer.pp[b].d[1]=7;}else if(computer.pp[b].number<=103 && computer.pp[b].number>=100) {lgg=8;computer.pp[b].d[1]=8;}else if(computer.pp[b].number<=107 && computer.pp[b].number>=104)computer.pp[b].d[1]=9;}}else if(computer.pp[b].number<=135 && computer.pp[b].number>=108) {lg=4;computer.pp[b].d[0]=4;if(computer.pp[b].number<=111 && computer.pp[b].number>=108) {lgg=1;computer.pp[b].d[1]=1;}else if(computer.pp[b].number<=115 && computer.pp[b].number>=112) {lgg=2;computer.pp[b].d[1]=2;}else if(computer.pp[b].number<=119 && computer.pp[b].number>=116) {lgg=3;computer.pp[b].d[1]=3;}else if(computer.pp[b].number<=123 && computer.pp[b].number>=120) {lgg=4;computer.pp[b].d[1]=4;}else if(computer.pp[b].number<=127 && computer.pp[b].number>=124) {lgg=5;computer.pp[b].d[1]=5;}else if(computer.pp[b].number<=131 && computer.pp[b].number>=128) {lgg=6;computer.pp[b].d[1]=6;}else if(computer.pp[b].number<=135 && computer.pp[b].number>=132) {lgg=7;computer.pp[b].d[1]=7;}}ch[b].lg=lg; /*保存电脑手里的每张牌的信息*/ ch[b].lgg=lgg;lg=0;lgg=0;b++;}if(pg==2) /*乓*/{sing=1;b=computer.m;while(b!=-1){if(strcmp(me.pp[c].k,computer.pp[b].k)==0) computer.pp[b].p=1;b--;}}if(pg==3) /*杠*/{sing=2;b=computer.m;while(b!=-1){if(strcmp(me.pp[c].k,computer.pp[b].k)==0) computer.pp[b].g=1;b--;}}f=0;while(f<computer.m) /*吃的判断*/{ if(ch[f].lg==logo && ch[f].lg!=4){if(ch[f+1].lgg-ch[f].lgg==1) /*顺吃*/if(ch[f].lgg-logoo==1){gp++;computer.pp[f].c=1;computer.pp[f+1].c=1;}if(ch[f].lgg-ch[f+1].lgg==-1) /*逆吃*/if(ch[f+1].lgg-logoo==-1){gp++;computer.pp[f].c=1;computer.pp[f+1].c=1;}if(ch[f].lgg-logoo==-1) /*中吃*/computer.pp[f].c=1;computer.pp[f+1].c=1;}if(gp==1)break;}f++;}if(gp==1){sing=7;}pg=0;gp=0;b=0;}void rgznme(int c) /*本程序涵数的核心针对我的牌*/{ int b=0,lg,lgg,logo,logoo,pg=0,gp=0,cs=0,f=0;if(computer.pp[c].number<=35 && computer.pp[c].number>=0){logo=1;if(computer.pp[c].number<=3 && computer.pp[c].number>=0) logoo=1;else if(computer.pp[c].number<=7 && computer.pp[c].number>=4) logoo=2;else if(computer.pp[c].number<=11 && computer.pp[c].number>=8) logoo=3;else if(computer.pp[c].number<=15 && computer.pp[c].number>=12) logoo=4;else if(computer.pp[c].number<=19 && computer.pp[c].number>=16) logoo=5;else if(computer.pp[c].number<=23 && computer.pp[c].number>=20) logoo=6;else if(computer.pp[c].number<=27 && computer.pp[c].number>=24) logoo=7;else if(computer.pp[c].number<=31 && computer.pp[c].number>=28) logoo=8;else if(computer.pp[c].number<=35 && computer.pp[c].number>=32) logoo=9;}else if(computer.pp[c].number<=71 && computer.pp[c].number>=36) {logo=2;if(computer.pp[c].number<=39 && computer.pp[c].number>=36) logoo=1;else if(computer.pp[c].number<=43 && computer.pp[c].number>=40) logoo=2;else if(computer.pp[c].number<=47 && computer.pp[c].number>=44) logoo=3;else if(computer.pp[c].number<=51 && computer.pp[c].number>=48)else if(computer.pp[c].number<=59 && computer.pp[c].number>=56) logoo=6;else if(computer.pp[c].number<=63 && computer.pp[c].number>=60) logoo=7;else if(computer.pp[c].number<=67 && computer.pp[c].number>=64) logoo=8;else if(computer.pp[c].number<=71 && computer.pp[c].number>=68) logoo=9;}else if(computer.pp[c].number<=107 && computer.pp[c].number>=72) {logo=3;if(computer.pp[c].number<=75 && computer.pp[c].number>=72) logoo=1;else if(computer.pp[c].number<=79 && computer.pp[c].number>=76) logoo=2;else if(computer.pp[c].number<=83 && computer.pp[c].number>=80) logoo=3;else if(computer.pp[c].number<=87 && computer.pp[c].number>=84) logoo=4;else if(computer.pp[c].number<=91 && computer.pp[c].number>=88) logoo=5;else if(computer.pp[c].number<=95 && computer.pp[c].number>=92) logoo=6;else if(computer.pp[c].number<=99 && computer.pp[c].number>=96) logoo=7;else if(computer.pp[c].number<=103 && computer.pp[c].number>=100) logoo=8;else if(computer.pp[c].number<=107 && computer.pp[c].number>=104) logoo=9;}else if(computer.pp[c].number<=135 && computer.pp[c].number>=108) {logo=4;if(computer.pp[c].number<=111 && computer.pp[c].number>=108) logoo=1;else if(computer.pp[c].number<=115 && computer.pp[c].number>=112) logoo=2;else if(computer.pp[c].number<=119 && computer.pp[c].number>=116) logoo=3;else if(computer.pp[c].number<=123 && computer.pp[c].number>=120) logoo=4;else if(computer.pp[c].number<=127 && computer.pp[c].number>=124) logoo=5;else if(computer.pp[c].number<=131 && computer.pp[c].number>=128) logoo=6;else if(computer.pp[c].number<=135 && computer.pp[c].number>=132) logoo=7;}while(b<=me.m){lg=1;me.pp[b].d[0]=1;if(me.pp[b].number<=3 && me.pp[b].number>=0){lgg=1;me.pp[b].d[1]=1;}else if(me.pp[b].number<=7 && me.pp[b].number>=4) {lgg=2;me.pp[b].d[1]=2;}else if(me.pp[b].number<=11 && me.pp[b].number>=8) {lgg=3;me.pp[b].d[1]=3;}else if(me.pp[b].number<=15 && me.pp[b].number>=12) {lgg=4;me.pp[b].d[1]=4;}else if(me.pp[b].number<=19 && me.pp[b].number>=16) {lgg=5;me.pp[b].d[1]=5;}else if(me.pp[b].number<=23 && me.pp[b].number>=20) {lgg=6;me.pp[b].d[1]=6;}else if(me.pp[b].number<=27 && me.pp[b].number>=24) {lgg=7;me.pp[b].d[1]=7;}else if(me.pp[b].number<=31 && me.pp[b].number>=28) {lgg=8;me.pp[b].d[1]=8;}else if(me.pp[b].number<=35 && me.pp[b].number>=32) {lgg=9;me.pp[b].d[1]=9;}}else if(me.pp[b].number<=71 && me.pp[b].number>=36) {if(me.pp[b].number<=39 && me.pp[b].number>=36){lgg=1;me.pp[b].d[1]=1;}else if(me.pp[b].number<=43 && me.pp[b].number>=40) {lgg=2;me.pp[b].d[1]=2;}else if(me.pp[b].number<=47 && me.pp[b].number>=44) {lgg=3;me.pp[b].d[1]=3;}else if(me.pp[b].number<=51 && me.pp[b].number>=48) {lgg=4;me.pp[b].d[1]=4;}else if(me.pp[b].number<=55 && me.pp[b].number>=52) {lgg=5;me.pp[b].d[1]=5;}else if(me.pp[b].number<=59 && me.pp[b].number>=56) {lgg=6;me.pp[b].d[1]=6;}else if(me.pp[b].number<=63 && me.pp[b].number>=60) {lgg=7;me.pp[b].d[1]=7;}else if(me.pp[b].number<=67 && me.pp[b].number>=64) {lgg=8;me.pp[b].d[1]=8;}else if(me.pp[b].number<=71 && me.pp[b].number>=68) {lgg=9;me.pp[b].d[1]=9;}}else if(me.pp[b].number<=107 && me.pp[b].number>=72) {lg=3;me.pp[b].d[0]=3;if(me.pp[b].number<=75 && me.pp[b].number>=72)}else if(me.pp[b].number<=79 && me.pp[b].number>=76) {lgg=2;me.pp[b].d[1]=2;}else if(me.pp[b].number<=83 && me.pp[b].number>=80) {lgg=3;me.pp[b].d[1]=3;}else if(me.pp[b].number<=87 && me.pp[b].number>=84) {lgg=4;me.pp[b].d[1]=4;}else if(me.pp[b].number<=91 && me.pp[b].number>=88) {lgg=5;me.pp[b].d[1]=5;}else if(me.pp[b].number<=95 && me.pp[b].number>=92) {lgg=6;me.pp[b].d[1]=6;}else if(me.pp[b].number<=99 && me.pp[b].number>=96) {lgg=7;me.pp[b].d[1]=7;}else if(me.pp[b].number<=103 && me.pp[b].number>=100) {lgg=8;me.pp[b].d[1]=8;}else if(me.pp[b].number<=107 && me.pp[b].number>=104) {lgg=9;me.pp[b].d[1]=9;}}else if(me.pp[b].number<=135 && me.pp[b].number>=108)if(me.pp[b].number<=111 && me.pp[b].number>=108) {lgg=1;me.pp[b].d[1]=1;}else if(me.pp[b].number<=115 && me.pp[b].number>=112) {lgg=2;me.pp[b].d[1]=2;}else if(me.pp[b].number<=119 && me.pp[b].number>=116) {lgg=3;me.pp[b].d[1]=3;}else if(me.pp[b].number<=123 && me.pp[b].number>=120) {lgg=4;me.pp[b].d[1]=4;}else if(me.pp[b].number<=127 && me.pp[b].number>=124) {lgg=5;me.pp[b].d[1]=5;}else if(me.pp[b].number<=131 && me.pp[b].number>=128) {lgg=6;me.pp[b].d[1]=6;}else if(me.pp[b].number<=135 && me.pp[b].number>=132) {lgg=7;me.pp[b].d[1]=7;}}}}void istwo(testt)int testt[];{ if(testt[0]==testt[1])second++;}void isthree(testt,n)int testt[],n=0;{ int i,j,flage=0,lianx=0,same=0;n=n/3;for(j=0;j<n;j++){for(i=j*3;i<2+j*3;i++)same++;if(testt[i+1]-testt[i]==1)lianx++;}if(same==2)threes++;if(lianx==2)threes++;same=0;lianx=0;}}void panduan() /*本程序的精髓*/{int data[14];int pw[14];int pt[14];int pi[14];int pf[14];int test[12];int jj,w,mm,nn,tpp=0,lp=0,ww=0,tt=0,ii=0,ff=0;ill=0; for(jj=0;jj<=me.m;jj++){if(me.pp[jj].d[0]==1)data[jj]=me.pp[jj].d[1];if(me.pp[jj].d[0]==2)data[jj]=me.pp[jj].d[1]+10;if(me.pp[jj].d[0]==3)data[jj]=me.pp[jj].d[1]+20;if(me.pp[jj].d[0]==4)data[jj]=me.pp[jj].d[1]+30;}if(logo==2)w=logoo+10;if(logo==3)w=logoo+20;if(logo==4)w=logoo+30;data[computer.m+1]=w;for(mm=0;mm<=computer.m;mm++)for(nn=mm;nn<=computer.m;nn++)if(data[mm]>data[nn+1]){tpp=data[mm];data[mm]=data[nn+1];data[nn+1]=tpp;}lp=0;while(lp<=computer.m){ if(data[lp]<10)pw[ww++]=data[lp];if(data[lp]>10 && data[lp]<20)pi[ii++]=data[lp];if(data[lp]>30 && data[lp]<38)pf[ff++]=data[lp];lp++;}if(ww==2)istwo(pw);else if(ww==3)isthree(pw,ww);else if(ww==5)/*pw[5]原始牌数组,假设已经升序排列*//*test[3]用来放置测试牌的数组*/for(i=0;i<4;i++){for(j=0;j<2;j++){test[j]=pw[i+j];}if(istwo(test)){ ill=0;for(kl=0;kl<5;kl++) /*把不在test数组中的三张放到test数组中*/ {if(kl==i){kl=kl+2;if(kl==5)break;}test[ill++]=pw[kl];}isthree(test);}}else if(ww==6)isthree(pw,ww);else if(ww==8)for(i=0;i<7;i++){for(j=0;j<2;j++){test[j]=pw[i+j];}if(istwo(test)){ ill=0;for(kl=0;kl<8;kl++) /*把不在test数组中的六张放到test数组中*/if(kl==8)break;}test[ill++]=pw[kl];}isthree(test,ww-2);}}else if(ww==9)isthree(pw,ww);else if(ww==11)for(i=0;i<10;i++){for(j=0;j<2;j++){test[j]=pw[i+j];}if(istwo(test)){ ill=0;for(kl=0;kl<11;kl++) /*把不在test数组中的九张放到test数组中*/ {if(kl==i){kl=kl+2;if(kl==11)break;}test[ill++]=pw[kl];}isthree(test,ww-2);}}else if(ww=12)isthree(pw,ww);else if(ww=14)for(i=0;i<13;i++){for(j=0;j<2;j++){test[j]=pw[i+j];}if(istwo(test)){ ill=0;for(kl=0;kl<11;kl++) /*把不在test数组中的九张放到test数组中*/ {if(kl==i){kl=kl+2;if(kl==14)break;}test[ill++]=pw[kl];}isthree(test,ww-2);。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

剪刀石头布源代码#include<stdio.h>#include<stdlib.h>main(){int d,x;{printf(" 请输入:1 是剪刀,2 是石头,3是布");scanf("%d",&d);x=rand()%3;if(d==x)printf(" 双方平局");else if((d==1&&x==2)||(d==2&&x==3)||(d==3&&x==1)) printf("你赢了");elseprintf(" 电脑赢了");}}简单计算器#include<stdio.h>main(){int a,b,d=0;char c;while(d==0){printf(" 请开始计算,请输入需要运算的数字和运算法则,数字符号数字:"); scanf("%d%c%d",&a,&c,&b);switch(c){case'+': printf("%d+%d=%d\n",a,b,a+b); break;case'-':printf("%d-%d=%d\n",a,b,a-b); break;case'*':printf("%d*%d=%d\n",a,b,a*b);break;case'/':if(0==b)printf(" 除法被除数不能为零!\n") ; elseprintf("%d/%d=%d\n",a,b,a/b); break;}}}加油站加油问题#include<stdio.h>int main(){double a = 3.25, b = 3.00, c= 2.75;double d = 0.05, e = 0.10, m;int x,y,z;printf(" 请输入您要的加油量:");scanf("%d",&x);printf(”请输入您要的汽油种类,1-a型汽油售价3.25元/千克,2-b型汽油售价3.00元/千克, 3-c型汽油售价2.75元/千克:”);scanf("%d",&y);printf(" 请输入您要的服务类型,1-自己加服务优惠0.05,2-协助加服务优惠0.10:");scanf("%d",&z);switch(y){case 1:y = a;break;case 2:y = b;break;case 3:y = c;break;}if(z == 1)m = (1 - d) * y * x; else if(z == 2)m = (1 - e) * y * x;",m);printf(" 您需要支付:%f 元,谢谢惠顾,欢迎下次再来return 0;}猜数字游戏#include<stdio.h>#include<stdlib.h>int main(){int d=1,e=0;int a,b,t;printf (" 请输入1-10 以内的整数,\n ");while(d==1){printf(" 玩家的选择: ");scanf("%d",&a);do{if((a>=0)&&(a<11))break; else{printf(" 错误");scanf("%d",&a);}}while(e==0);b=rand()%10+1;printf("npc:%d",b);t=a-b;if(t==0)printf("\nRight!\n");else if(t<0)printf("\n Wrong ! 太小了\ n");else if(t>0)printf("\n Wrong ! 太大了\ n");}return 0;}万年历#include<stdio.h>#include<stdlib.h> void setmonth(int r);void main(void){int year,month,day,a,b,i,j,d,x,mon,k;do{printf(" --------------------------------------------------- \n");printf(" 查全年,输入1!\n");printf(" 查月份,输入2!\n");printf(" 查日期,输入3!\n"); printf(" 继续?输入4!\n");printf(" 退出,输入5!\n"); printf(" ----------------- \n");printf(" 请输入:");scanf("%d",&x);if(x==1){ month=12; printf(" 输入年份:"); scanf("%d",&year);} if(x==2){printf(" 输入年份:"); scanf("%d",&year); printf(" 输入月份:"); scanf("%d",&month);} if(x==3){printf(" 输入年份:"); scanf("%d",&year); printf(" 输入月份:"); scanf("%d",&mon);printf(" 输入日期:"); scanf("%d",&day); month=mon-1;}}if(x==5) exit(100); a=((year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400)%7;for(i=1,d=0;i<=month;i++){ switch(i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:d=31;break;case 2:if(!(year%4)&&(year%100)||!(year%400)) d=29;elsed=28; break; case 4: case 6: case 9: case 11:d=30;} b=a%7; a+=d; if(x==1){printf("setmonth(i);**\n"); printf("========================================================\n"); printf(" 星期一 星期二 星期三 星期四 星期五 星期天 \n");for(j=1;j<=b;j++) printf("%8c",' '); for(j=1;j<=d;j++) {printf("%8d",j);if((j+b)%7==0) printf("\n");\n");printf( 星期六**\n");printf("========================================================\n");printf(" 星期一 星期二 星期三 星期四 星期五 星期天 \n");for(j=1;j<=b;j++)printf("%8c",' '); for(j=1;j<=d;j++) {printf("%8d",j); if((j+b)%7==0) printf("\n");}printf("\n");}if(x==3){a+=day; a%=7;printf (" 是否继续?输入 4继续,输入 5退出: ");scanf("%d",&k);while(k==4);printf(" }if(x==1)printf("\n");if(x==2)\n");setmonth(i-1);printf( 星期六switch(a){case 0:printf("%d.%d.%d case 1:printf("%d.%d.%d case 2:printf("%d.%d.%d case 3:printf("%d.%d.%d case 4:printf("%d.%d.%d case 5:printf("%d.%d.%d default:printf("%d.%d.%d } printf("\n");}星期一 !",year,mon,day);break;星期二 !",year,mon,day);break;星期三 !",year,mon,day);break;星期四 !",year,mon,day);break;星期五 !",year,mon,day);break;星期六 !",year,mon,day);break;星期天 !",year,mon,day);if(k==5)三 (- --=e H 川。

寸 %==l u _」d o ① SB 。

三 e p fi - --=eHIZ 。

相关文档
最新文档