c语言程序代码
顺序表c语言的程序代码

//----------------------------线性表的动态分配顺序存储结构-------------------------# include "stdio.h"# include "malloc.h"# include "stdlib.h"# define M 5 //线性表存储空间的初始分配量# define N 2 //线性表存储空间的分配增量typedef struct {int *elem; //存储空间基址int length; //当前长度int listsize; //当前分配的存储容量(以sizeof(int)为单位)}SqList;int InitList(SqList *L) { // 构造一个空的线性表LL->elem=(int *)malloc(M*sizeof(int));if(!L->elem) // 存储分配失败exit(-2);L->length=0; // 空表长度为0L->listsize=M; // 初始存储容量return 1;}int IntPut(SqList *L) { //输入数据int i,e;printf ("请输入你要输入数据的个数:\n");scanf ("%d",&e);if (1>e||5<e) { //判断输入数据的个数是否合格,若不合格请重新输入do{printf ("你输入的数据有误!请重新输入:\n");scanf ("%d",&e);}while(1>e||5<e);}printf ("输入正确!\n请开始输入数据并用空格隔开:\n");for (i=0;i<e;i++) { //开始输入数据scanf ("%d",&L->elem[i]);L->length=L->length+1;}return 1;}int OutPut(SqList *L) { //输出数据int i;for (i=0;i<L->length;i++) {printf ("%d",L->elem[i]);printf ("\n");}return 1;}int Find(SqList *L) { //在顺序线性表L中查找第i个值,若找到,则打印出对应的值int i;printf ("请输入你要查找的数据序号:\n");scanf ("%d",&i);if (1>i||L->length<i) { //判断输入的序号是否合格,若不合格请重新输入do{printf ("你输入的数据有误!请重新输入:\n");scanf ("%d",&i);}while(1>i||L->length<i);}printf ("输入的序号正确!\n你输入的序号所对应的数据是:\n");printf ("%d\n",L->elem[i-1]); //打印出对应的值return 0;}int ListInsert(SqList *L) { // 在顺序线性表L的第i个元素之前插入新的元素e,// i的合法值为1≤i≤ListLength(L)+1 int *y,*q,*p,i,e;printf ("请输入你要插入的数据序号:\n");scanf ("%d",&i);if (1>i||(L->length+1)<i) { // 判断输入的序号是否合格,若不合格请重新输入do{printf ("你输入的数据有误!请重新输入:\n");scanf ("%d",&i);}while(1>i||(L->length+1)<i);}printf ("输入的序号正确!\n请输入你要插入的数据:\n");scanf ("%d",&e);if(L->length>=L->listsize) { // 当前存储空间已满,增加容量y=(int *)realloc(L->elem,(L->listsize+N)*sizeof(int));if(!y) // 存储分配失败exit(-2);L->elem=y; // 新基址L->listsize+=N; // 增加存储容量}q=&(L->elem[i-1]); // q为插入位置for(p=&(L->elem[L->length-1]);p>=q;--p) // 插入位置及之后的元素右移*(p+1)=*p;if(L->length>6){printf ("插入失败,线性表L已满!\n");return 1;}*q=e; // 插入e++L->length; // 表长增1return 1;}int ListDelete(SqList *L,int &e) { // 在顺序线性表L中删除第i个元素,并用e返回其值。
C语言代码大全

乘法口诀表#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++){gotoxy(x,y);printf("%2d ",i);x+=3;}x=7;y=6;for(i=1;i<=9;i++){gotoxy(x,y);printf("%2d ",i);y++;}x=9;y= 6;for(i=1;i<=9;i++){for(j=1;j<=9;j++){gotoxy(x,y);printf("%2d ",i*j);y++;}y-=9;x+=3;}printf("\n\n");}用一维数组统计学生成绩#include <stdio.h>void main(){char SelectKey,CreditMoney,DebitMoney;while(1){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' &&SelectKey!='4' );switch(SelectKey){case '1':clrscr();puts("================================");puts("| Your balance is $1000. |");puts("| Press any key to return... |");puts("================================");getch();break;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){case '1':clrscr();puts("=========================================");puts("| Your Credit money is $50,Thank you! |");puts("| Press any key to return... |");puts("=========================================");getch();break;case '2':clrscr();puts("==========================================");puts("| Your Credit money is $100,Thank you! |");puts("| Press any key to return... |");puts("==========================================");getch();break;case '3':break;}break;case '3':do{clrscr();puts("====================================");puts("| Please select Debit money: |");puts("| 1. $50 |");puts("| 2. $100 |");puts("| 3. $500 |");puts("| 4. $1000 |");puts("| 5. Return |");puts("====================================");DebitMoney = getch();}while( DebitMoney!='1' && DebitMoney!='2' && DebitMoney!='3' &&DebitMoney!='4' && DebitMoney!='5' );switch(DebitMoney){case '1':clrscr();puts("===========================================");puts("| Your Debit money is $50,Thank you! |");puts("| Press any key to return... |");puts("===========================================");getch();break;case '2':clrscr();puts("===========================================");puts("| Your Debit money is $100,Thank you! |");puts("| Press any key to return... |");puts("===========================================");getch();break;case '3':clrscr();puts("===========================================");puts("| Your Debit money is $500,Thank you! |");puts("| Press any key to return... |");puts("===========================================");getch();break;case '4':clrscr();puts("===========================================");puts("| Your Debit money is $1000,Thank you! |");puts("| Press any key to return... |");puts("===========================================");getch();break;case '5':break;}break;case '4':clrscr();puts("================================");puts("| Thank you for your using! |");puts("| Good bye! |");puts("================================");return;}}模拟ATM(自动柜员机)界面#include <stdio.h> void main(){int Password=0,Number=0,price=58,i=0;while( Password != 1234 ){if( i >= 3 )return;i++;puts("Please input Password: ");scanf("%d",&Password);}i=0;while( Number!=price ){do{puts("Please input a number between 1 and 100: ");scanf("%d",&Number);printf("Your input number is %d\n",Number);}while( !(Number>=1 && Number<=100) );if( Number >= 90 ){printf("Too Bigger! Press any key to try again!\n");}else if( Number >= 70 && Number < 90 ){printf("Bigger!\n");}else if( Number >= 1 && Number <= 30 ){printf("Too Small! Press any key to try again!\n");}else if( Number > 30 && Number <= 50 ){printf("Small! Press any key to try again!\n");}else{if( Number == price ){printf("OK! You are right! Bye Bye!\n");}else if( Number < price ){printf("Sorry,Only a little smaller! Press any key to try again!\n");}else if( Number > price ){printf(" Sorry, Only a little bigger! Press any key to try again!\n");}getch();}}用二维数组实现矩阵转置/* 用二维数组实现矩阵的转置*/#include <stdio.h>#define ROW 3#define COL 4main(){int matrixA[ROW][COL],matrixB[COL][ROW];int i,j; clrscr();printf("Enter elements of the matrixA,");printf("%d*%d:\n",ROW,COL);for( i=0; i<ROW; i++ ){for( j=0; j<COL; j++ ){scanf("%d",&matrixA[i][j]);}}for( i=0; i<ROW; i++ ){for( j=0; j<COL; j++ ){matrixB[j][i] = matrixA[i][j];}}printf("MatrixB,");printf("%d*%d:\n",COL,ROW);for( i=0; i<COL; i++ ){for( j=0; j<ROW; j++ ){printf("%8d",matrixB[i][j]);}printf("\n");}printf("\n Press Any Key to Quit... \n");getch();}求解二维数组的最大/最小元素#define MAXN 20int a[MAXN][MAXN];main(){int min, /* 存储最小值*/max; /* 存储最大值*/int row,col,n;clrscr();printf("Please input the order of the matrix:\n");/* 输入方阵的阶次*/ scanf("%d",&n);printf("Please input the elements of the matrix,\n from a[0][0] to a[%d][%d]:\n",n-1,n-1);for(row=0;row<n;row++)for(col=0;col<n;col++)scanf("%d",&a[row][col]);for(min=a[0][0],row=0;row<n;row++){/* 从每行选出最大数*/for(max=a[row][0],col=1;col<n;col++)/*从row行选出最大数*/if(max<a[row][col])max=a[row][col];if(min>max)/* 保存至row行的最小数*/min=max;}printf("The minimum of maximum number is %d\n",min);for(max=a[0][0],row=0;row<n;row++)/* 每行选出最小数*/for(min=a[row][0],col=1;col<n;col++)/* 从row行选出最小数*/ if(min>a[row][col])min=a[row][col];if(max<min)/*保存至row行的最大数*/max=min;}printf("The maximum of minimum numbers is %d\n",max);printf("\nPress any key to quit...\n");getch();}利用数组求前n个质数#define N 50main(){int primes[N];int pc,m,k; clrscr();printf("\n The first %d prime numbers are:\n",N);primes[0]=2;/*2是第一个质数*/pc =1;/*已有第一个质数*/m =3;/*被测试的数从3开始*/while(pc<N){/*调整m使它为下一个质数*/k=0;while(primes[k]*primes[k]<=m)if(m%primes[k]==0){/*m是合数*/m+=2;/*让m取下一个奇数*/k=1;/*不必用primes[0]=2去测试m,所以k从一开始*/}elsek++;/*继续用下一个质数去测试*/primes[pc++]=m;m+=2;/*除2外,其余质数均是奇数*/}/*输出primes[0]至primes[pc-1]*/for(k=0;k<pc;k++)printf("%4d",primes[k]);printf("\n\n Press any key to quit...\n ");getch();}编制万年历#include "stdio.h"long int f(int year,int month){/*f(年,月)=年-1,如月<3;否则,f(年,月)=年*/if(month<3) return year-1;else return year;} long int g(int month){/*g(月)=月+13,如月<3;否则,g(月)=月+1*/if(month<3) return month+13;else return month+1;} long int n(int year,int month,int day){/*N=1461*f(年、月)/4+153*g(月)/5+日*/return 1461L*f(year,month)/4+153L*g(month)/5+day;} int w(int year,int month,int day){/*w=(N-621049)%7(0<=w<7)*/return(int)((n(year,month,day)%7-621049L%7+7)%7);} int date[12][6][7];int day_tbl[ ][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};main(){int sw,leap,i,j,k,wd,day;int year;/*年*/char title[]="SUN MON TUE WED THU FRI SAT";clrscr();printf("Please input the year whose calendar you want to know: ");/*输入年*/scanf("%d%*c",&year);/*输入年份值和掠过值后的回车*/sw=w(year,1,1);leap=year%4==0&&year%100||year%400==0;/*判闰年*/for(i=0;i<12;i++)for(j=0;j<6;j++)for(k=0;k<7;k++)date[i][j][k]=0;/*日期表置0*/for(i=0;i<12;i++)/*一年十二个月*/for(wd=0,day=1;day<=day_tbl[leap][i];day++){/*将第i+1月的日期填入日期表*/date[i][wd][sw]=day;sw=++sw%7;/*每星期七天,以0至6计数*/if(sw==0) wd++;/*日期表每七天一行,星期天开始新的一行*/} printf("\n|==================The Calendar of Year %d=====================|\n|",year);for(i=0;i<6;i++){/*先测算第i+1月和第i+7月的最大星期数*/for(wd=0,k=0;k<7;k++)/*日期表的第六行有日期,则wd!=0*/wd+=date[i][5][k]+date[i+6][5][k];wd=wd?6:5;printf("%2d %s %2d %s |\n|",i+1,title,i+7,title);for(j=0;j<wd;j++){printf(" ");/*输出四个空白符*//*左栏为第i+1月,右栏为第i+7月*/for(k=0;k<7;k++)if(date[i][j][k])printf("%4d",date[i][j][k]);else printf(" ");printf(" ");/*输出十个空白符*/for(k=0;k<7;k++)if(date[i+6][j][k])printf("%4d",date[i+6][j][k]);else printf(" ");printf(" |\n|");}/*scanf("%*c");/*键入回车输出下一个月的日历*/}puts("=================================================================|");puts("\n Press any key to quit...");getch();}对数组元素排序rest(int a[], int n){int i,low,high,t; for(i=0,low=0,high=n-1;i<=high;) {if(a[i]>0){/*a[i]与a[high]交换,随之high减1*/t=a[i];a[i]=a[high];a[high]=t;high--;}else if(a[i]==0)i++; /* 掠过该元素*/else{/*a[i]与a[low]交换,随之low增1, i增1*/t=a[i];a[i]=a[low];a[low]=t;low++;i++;}}int s[]={8,4,0,-1,6,0,-5};main(){int i;clrscr();printf("\n The arry before rest is:\n");for(i=0;i<sizeof(s)/sizeof(s[0]);i++)printf("%4d",s[i]);rest(s,sizeof(s)/sizeof(s[0]));printf("\n The arry after rest is:\n");for(i=0;i<sizeof(s)/sizeof(s[0]);i++)printf("%4d",s[i]);printf("\n Press any key to quit...\n");getch();}任意进制数的转换/* 函数trans将无符号整数n翻译成d(2<=d<=16)进制表示的字符串s */ #define M sizeof(unsigned int)*8int trans(unsigned n, int d, char s[]){static char digits[] ="0123456789ABCDEF"; /* 十六进制数字的字符*/char buf[M+1];int j, i = M;if(d<2||d>16){s[0]='\0'; /* 不合理的进制,置s为空字符串*/return 0; /* 不合理的进制,函数返回0 */}buf[i]='\0';do{buf[--i]=digits[n%d]; /*译出最低位,对应字符存入对应工作数组中*/n/=d;}while(n);/* 将译出在工作数组中的字符串复制到s */for(j=0;(s[j]=buf[i])!='\0';j++,i++);/* 其中控制条件可简写成s[j]=buf[i] */return j;}/* 主函数用于测试函数trans() */main()unsigned int num = 253;int scale[]={2,3,10,16,1};char str[33];int i;clrscr();for(i=0;i<sizeof(scale)/sizeof(scale[0]);i++){if(trans(num,scale[i],str))printf("%5d = %s(%d)\n",num,str,scale[i]);elseprintf("%5d => (%d) Error! \n",num,scale[i]);}printf("\n Press any key to quit...\n");getch();}判断回文数/* 函数circle用于判断正整数n的d进制数表示形式是否是回文数*/ int circle(int n, int d){int s=0,m=n;while(m){s=s*d+m%d;m/=d;}return s==n;}/* main函数用于测试circle函数*/int num[]={232,27,851};int scale[]={2,10,16};main(){int i,j;clrscr();for(i=0;i<sizeof(num)/sizeof(num[0]);i++)for(j=0;j<sizeof(scale)/sizeof(scale[0]);j++)if(circle(num[i],scale[j]))printf("%d -> (%d) is a Circle Number!\n",num[i],scale[j]);elseprintf("%d -> (%d) is not a Circle Number!\n",num[i],scale[j]);printf("\n Press any key to quit...\n");getch();}求解钢材切割的最佳订单#include <stdio.h>#define N 20#define DELTA 2int bestlen;int bestsele[N];int sele[N];int n;int orderlen[N];int total;main(){int i;clrscr();printf("\n Please enter total length of the steel:\n");/* 输入钢材总长*/scanf("%d",&total);printf("\n Please enter number of order:\n"); /* 输入定单数*/ scanf("%d",&n);printf("\n Please enter the orders:\n"); /* 输入各定单*/for(i=0;i<n;i++)scanf("%d",&orderlen[i]);bestlen=0; /*最佳解用料的初值*/for(i=0;i<n;i++)sele[i]=bestsele[i]=0; /*置当前选择和最佳选择初值*/try(); /* 调用函数求解*/for(i=0;i<n;i++) /* 输出结果*/if(bestsele[i])printf("order %d length = %d\n",i+1,orderlen[i]);printf("\n Press any key to quit...");getch();}try(){int i,len;for(len=i=0;i<n;i++) /* 求当前选中的用料量*/if(sele[i])len+=orderlen[i]+DELTA;if(len-DELTA<=total) /* 注意最后一段可能不需要切割*/{if(bestlen < len){/* 找到一个更好的解*/bestlen = len;for(i=0;i<n;i++)bestsele[i]=sele[i];}for(i=0;i<n;i++) /* 对所有未选定单逐一作选中尝试循环*/if(!sele[i]){sele[i]=1; /* 做选中尝试*/try();sele[i]=0;}}}指向数组的指针main(){int x,y,z; /* 定义三个int型变量*/int *xp = &x, /* 定义指针变量xp,并赋值为x的地址,使xp指向x */ *yp = &y, /* 定义指针变量yp,并赋值为y的地址,使yp指向y */*zp = &z; /* 定义指针变量zp,并赋值为z的地址,使zp指向z */int t;clrscr();printf("\nPlease input x,y,z:\n");scanf("%d%d%d",xp,yp,zp); /* 通过变量的指针,为变量输入值*/ if(*xp>*yp) /* 通过指向变量的指针引用变量的值*/{t=*xp; /* 通过指向变量的指针引用变量的值*/*xp=*yp;/* 通过指向变量x的指针xp,引用变量x的值*/*yp=t; /* 通过指向变量y的指针yp,引用变量y的值*/}if(*xp>*zp) /* 通过指向变量的指针,引用变量的值*/{t=*xp; /* 通过指向变量x的指针xp,引用变量x的值*/*xp=*zp;/* 通过指向变量x的指针xp,引用变量x的值*/*zp=t; /* 通过指向变量z的指针zp,引用变量z的值*/}if(*yp>*zp) /* 通过指向变量的指针,引用变量的值*/{t=*yp; /* 通过指向变量的指针,引用变量的值*/*yp=*zp;/* 通过指向变量y的指针yp,引用变量y的值*/*zp=t;/* 通过指向变量z的指针zp,引用变量z的值*/}printf("x = %d\ty = %d\tz = %d\n",x,y,z);printf("\nPress any key to quit...\n");getch();}阿拉伯数字转换为罗马数字#include <stdio.h>#define ROWS 4#define COLS 4int nums[ROWS][COLS]={{1000,1000,1000,1000},{900,500,400,100},{90,50,40,10},{9,5,4,1}};char *roms[ROWS][COLS]={{"m","m","m","m"}, {"cm","d","cd","c"},{"xc","l","xl","x"},{"ix","v","iv","i"}}; main(int argc,char *argv[ ]){int low,high;char roman[25]; if(argc<2){ printf("Usage:roman decimal_number\n");/*运行程序需带整数参数*/ exit(0);}high=low=atoi(argv[1]);/*将第一个参数转换成整数*/checknum(low);if(argc>2){/*带两个参数*/high=atoi(argv[2]);checknum(high);if(low>high){low=high;high=atoi(argv[1]);}}elselow=1;for(;low<=high;low++){to_roman(low,roman);printf("%d\t%s\n",low,roman);}} checknum(int val)/*检查参数合理性*/{if(val<1||val>9999){printf("The number must be in range 1..9999.\n");exit(0);}}to_roman(int decimal,char roman[ ])/*将整数转换成罗马数字表示*/ {int power,index;roman[0]='\0';for(power=0;power<ROWS;power++)for(index=0;index<COLS;index++)while(decimal>=nums[power][index]){strcat(roman,roms[power][index]);decimal-=nums[power][index];}}通讯录的输入输出#include <stdio.h>#define ZIPLEN 10#define PHONLEN 15/*struct addr类型定义*/ struct addr{char *name;/*姓名*/char *address;/*地址*/char zip[ZIPLEN];/*邮政编码*/char phone[PHONLEN];/*电话号码*/}; main()/*本主函数示意上述输入输出函数的用法*/{struct addr p[100];int i,j;clrscr();for(i=0;readaddr(p+i);i++);for(j=0;j<i;j++) writeaddr(p+j);puts("\n Press any key to quit...");getch();} /* 函数readaddr用于输入一个通信录函数*/int readaddr(struct addr *dpt){int len;char buf[120];/*输入字符串的缓冲区*/ printf("\nPlease input theName:\n");/*输入姓名*/if(scanf("%s",buf)==1){len=strlen(buf);dpt->name=(char *)malloc(len+1);/*申请存贮姓名的空间*/ strcpy(dpt->name,buf);}else return 0;/*Ctrl+Z结束输入*/printf("Please input the Address:\n");/*输入地址*/if(scanf("%s",buf)==1){len=strlen(buf);dpt->address=(char *)malloc(len+1);/*申请存贮地址的空间*/ strcpy(dpt->address,buf);}else{/*Ctrl+Z结束输入*/free(dpt->name);/*释放存贮姓名的空间*/return 0;printf("Please input the Zip code:\n");/*输入邮编*/if(scanf("%s",buf)==1)strncpy(dpt->zip,buf,ZIPLEN-1);else{free(dpt->name);/*释放存贮姓名的空间*/free(dpt->address);/*释放存贮地址的空间*/return 0;/*Ctrl+Z结束输入*/}printf("Please input the Phone number:\n");/*输入电话号码*/if(scanf("%s",buf)==1)strncpy(dpt->phone,buf,PHONLEN-1);else{free(dpt->name);free(dpt->address);return 0;/*Ctrl+Z结束输入*/}return 1;} /* 函数writeaddr用于输出通讯录*/int writeaddr(struct addr*dpt){printf("Name : %s\n", dpt->name);/*输出姓名*/printf("Address : %s\n", dpt->address);/*输出地址*/printf("Zip : %s\n", dpt->zip);/*输出邮编*/printf("Phone : %s\n\n", dpt->phone);/*输出电话号码*/}扑克牌的结构表示enum suits{CLUBS,DIAMONDS,HEARTS,SPADES};struct card{enum suits suit;char value[3];};struct card deck[52];char cardval[][3]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};char suitsname[][9]={"CLUBS","DIAMONDS","HEARTS","SPADES"}; main()int i,j;enum suits s;clrscr();for(i=0;i<=12;i++)for(s=CLUBS;s<=SPADES;s++){j=i*4+s;deck[j].suit=s;strcpy(deck[j].value,cardval[i]);}for(j=0;j<52;j++)printf("(%s%3s)%c",suitsname[deck[j].suit],deck[j].value,j%4==3?'\n':'\t');puts("\nPress any key to quit...");getch();}用“结构”统计学生成绩#include <stdio.h>#define N 200#define SCORES 5#define NUMLEN 10struct std_type{char no[NUMLEN];/*学号*/char *name;/*名字符串指针*/int scores[SCORES];/*五门功课的成绩*/};struct std_type students[N];int order[N];int total[N]; /*[函数]输入一个学生信息函数*/int readastu(struct std_type *spt){int len,j;char buf[120];/*输入字符串的缓冲区*/ printf("\nNumber : ");/*输入学号*/if(scanf("%s",buf)==1)strncpy(spt->no,buf,NUMLEN-1);elsereturn 0;/*Ctrl+Z结束输入*/printf("Name : ");/*输入姓名*/if(scanf("%s",buf)==1){len=strlen(buf);spt->name=(char *)malloc(len+1);/*申请存贮姓名的空间*/ strcpy(spt->name,buf);}else return 0;/*Ctrl+Z结束输入*/printf("Scores : ");/*输入成绩*/for(j=0;j<SCORES;j++)if(scanf("%d",spt->scores+j)!=1)break;if(j==0)/*一个成绩也未输入*/{free(spt->name);/*释放存贮姓名的空间*/return 0;}for(;j<SCORES;j++)/*少数未输入的成绩用0分代之*/ spt->scores[j]=0;return 1;} /*[函数]输出一个学生信息的函数*/int writeastu(struct std_type *spt){int i; printf("Number : %s\n",spt->no);/*输出学号*/printf("Name : %s\n",spt->name);/*输出姓名*/printf("Scores : ");/*输出成绩*/for(i=0;i<SCORES;i++)printf("%4d",spt->scores[i]);printf("\n\n");} main(){int n,i,j,t; clrscr();for(n=0;readastu(students+n);n++);/*采用冒泡法对学生信息数组排序*/for(i=0;i<n;i++){order[i]=i;/*预置第i个输入的学生*/for(t=0,j=0;j<SCORES;j++)/*求第i个学生的总分*/t+=students[i].scores[j];total[i]=t;}/*冒泡排序*/for(i=0;i<n-1;i++)/*共扫视n-1遍*/for(j=0;j<n-1-i;j++)if(total[order[j]]<total[order[j+1]]){/*交换名次*/t=order[j];order[j]=order[j+1];order[j+1]=t;}for(j=0;j<n;j++)/*输出*/writeastu(students+order[j]);printf("\n Press any key to quit...\n");getch();}报数游戏#include <stdio.h>struct ele{int no;struct ele *link;}main(){int n,m,i;struct ele *h,*u,*p;clrscr();printf("Please input n&m:\n");scanf("%d%d",&n,&m);/*输入n和m*/h=u=(struct ele *)malloc(sizeof(struct ele));/*形成首表元*/ h->no=1;for(i=2;i<=n;i++)/*形成其余的n-1个表元*/{u->link=(struct ele *)malloc(sizeof(struct ele));u=u->link;u->no=i;/*第i个表元置编号i*/}u->link=h;/*末表元后继首表元,形成环*/puts("\nThe numbers of who will quit the cycle in turn are:"); while(n){for(i=1;i<m;i++)/*掠过m-1个表元*/u=u->link;p=u->link;/*p指向第m个表元*/u->link=p->link;/*第m个表元从环中脱钩*/printf("%4d",p->no);free(p);/*释放第m个表元占用的空间*/n--;}printf("\n\n Press any key to quit...\n");getch();}学生成绩管理程序/*学生成绩管理程序编制一个统计学生考试分数的管理程序。
一些简单的c语言程序代码

由键盘任意输入1个4位数整数,分别输出其中的个位、十位、百位、千位。
/* expe 3-10 */#include <stdio.h>#include <math.h>void main(void){int mun,a,b,c,d;scanf("%d",&mun);a=mun / 1000; /*千位*/b=(mun % 1000) / 100; /*百位*/c=(mun % 100) / 10; /*十位*/d=(mun % 10); /*个位*/printf("千位数字为=%d\n",a);printf("百位数字为=%d\n",b);printf("十位数字为=%d\n",c);printf("个位数字为=%d\n",d);}由键盘任意输入3个数据,找出其中的最大数和最小数。
#include<stdio.h>void main(void){float a,b,c,k,g;/* k 小g 大*/printf ("请输入三个数");scanf("%f%f%f",&a,&b,&c);if (a < b){k = a;g = b;}else{k = b;g = a;}if (k < c)/*最小*/{ printf ("\n最小的数=%5.2f",k);}else{printf ("\n最小的数=%5.2f",c);}if (g > c)/*最大*/{printf ("\n最大的数=%5.2f",g);}else{printf ("\n最大的数=%5.2f",c);} }判断三角形的形状#include<stdio.h>#include<math.h>void main(void){printf("请输入三角形三边");float a,b,c,p,s,k1,k2,k3;scanf("%f%f%f",&a,&b,&c);while (a + b < c || b + c < a || a + c < b ){printf("不能构成三角形,请重新输入");scanf("%f%f%f",&a,&b,&c);}k1 = a * a;k2 = b * b;k3 = c * c;if (a == b && b == c && c ==a){printf("此三角形为等边三角形");}else if (a == b || b == c || c ==a){printf("此三角形为等腰三角形"); }else if ((k1 == b * b + c * c) || (k2 == a * a + c *c) || (k3 = a * a + b * b)){printf("此三角形为直角三角形");}else{printf("此三角形为一般三角形");} }九九乘法表整体#include <stdio.h>void main(void){int i,j;11for (i = 1;i < 10; i ++){for(j = 1;j < 10; j ++){printf("%5d",i * j);}printf("\n"); } }右半边#include <stdio.h>void main(void){int i,j;for (i = 1;i < 10; i ++){for(j = 1;j <= i; j ++){ printf("%5d",i * j);}printf("\n"); } }左半边#include <stdio.h>void main(void){int i,j;for (i = 1;i < 10;i ++)/*最外层循环*/ {for (j = 1;j < i; j++)/*打空格*/{ printf(" "); }for (j = 1;j <= 10 - i;j ++)/*计算*/{printf("%5d",j * i); }printf("\n"); } }打印菱形#include<stdio.h>void main(void){int i,j,k;for (i = 1;i <= 5;i ++){for (j = 0;j < 5 - i;j ++){printf(" ! "); }for (k = 1;k <= 2 * i - 1;k ++){printf(" * "); }printf("\n");}for (i = 4;i >= 0;i --){for (j = 4 - i;j > 0;j --){printf(" ! "); }for (k = 2 * i ;k >= 0;k --){ printf(" * ");}printf("\n"); } }找回文#include<stdio.h>#include<string.h>void main(void){char str[80];int i,j,iStrlenstr,iFlag;printf("请输入字符串\n");gets(str);iStrlenstr = strlen(str);for (i = 0 ,j = iStrlenstr - 1;i <= j ;i ++, j --){if (str[i] == str[j]){iFlag = 1; }else{iFlag = 0;break; }}if (iFlag == 1){printf("输入的是回文!\n"); }else{printf("输入的不是回文!\n"); }}找名字指针法/*不用查找函数,用指针的方法*/#include<stdio.h>void main(void)22{char str[10][80],a[80],*p[10],*q = NULL;int i, j,iFlag = 0;// int istrlenstr;printf("请输入名字\n");for ( i = 0 ; i < 10; i ++){gets(str[i]);}printf("请输入想查找的名字\n");gets(a);for (i = 0; i < 10; i ++){p[i] = str[i]; }q = a;for (i = 0; i < 10; i ++ ){iFlag = 0;j = 0;while(*(p[i] + j) && *(q + j)){if (*(p[i]+ j) != *(q + j)){break; }j++;}if (*(p[i] + j)== '\0' && *(q + j) == '\0'){ iFlag = 1;break; }}if (iFlag == 1)printf("FOUND ! 该名字的位置为%d",i);elseprintf("NOT FOUND !"); }/*利用指针给10个数排序*/#include<stdio.h>int main(void){int a[10],*p = NULL ,iTem;int i,j,iPos = 0;printf("请输入10个数\n");for (i = 0; i < 10; i ++){scanf("%d",&a[i]); }p = a;for(i = 0; i < 9; i ++){iPos = i;for (j = i + 1 ; j < 10 ;j ++){if (a[j]< a[iPos])iPos = j;}iTem = *(a + i);*(a + i) = *(a + iPos);*(a + iPos) = iTem;}printf("排序之后的为");for (i = 0; i < 10; i ++){printf("%4d",*(a + i)); }return 0; }/*名字排序,从大到小*/#include<stdio.h>#include<string.h>void main(void){char a[10][10],cTemp[10];int i,j,iMax;printf("输入十个学生姓名:\n");for(i = 0; i < 10; i ++){gets(a[i]);}for(i = 0;i < 10 ;i ++){iMax = i;for(j = i + 1;j < 10;j ++){if(strcmp(a[iMax],a[j]) < 0){iMax = j;}}33if(iMax != i){strcpy(cTemp,a[i]);strcpy(a[i],a[iMax]);strcpy(a[iMax],cTemp);}}printf("按照字典降序排序为:\n");for(i = 0;i < 10;i ++){puts(a[i]);} }/*查找并删除某字符*/#include<stdio.h>int main(){char str[80],*p = NULL,*q;char t;printf("请输入字符串:\n");gets(str);printf("请输入想要删除的字符:\n");t = getchar();p = str;q = str;for (p = str; *p != '\0'; p ++){if (*p != t){*q++ = *p; }}*q = '\0';puts(str);}函数作业(全部)/*交换器,引用全局变量*/方法一int a,b;void main(void){scanf("%d%d",&a,&b);fun();printf("a=%d,b=%d\n",a,b);}void fun(void){int c;c = a;a = b;b = c;}方法二#include<stdio.h>#define swap(x,y) {int tmp=x;x=y;y=tmp;}int main(){int x,y;printf("请输入两个数字\n");scanf("%d%d",&x,&y);swap(x,y);printf("交换之后的数字是\n");printf("%d\t%d\t",x,y);return 0;}/*用函数找最大公约数*/#include<stdio.h>int maxd(int,int);int main(){int a,b,d;printf("请输入两个整数\n");scanf("%d%d",&a,&b);d = maxd(a,b);printf("这两个数的最大公约数为:%d",d);return 0;}int maxd(int a,int b){int m,n,k;if(a<b)44{m = b;n = a;}else{m = a;n = b;}do{k = m%n;m = n;n = k;}while(n != 0);return(m);}/*用函数统计*/#include<stdio.h>int icount(char* );int main(){char str[80];int m = 0;printf("请输入字符串\n");gets(str);m = icount(str);printf("字符串中数字的个数有:%d",m);return 0;}int icount(char *p){int k = 0;while( *p != '/0'){if (*p >= '0' && *p <= '9')k ++;}return k;}/*排序函数*/#include<stdio.h>#include<string.h>void iSort (int[],int);int main(){int a[10];int i;printf("请输入10个整数\n");for (i = 0; i < 10 ; i ++){scanf("%d",&a[i]); }iSort(a,10);printf("从小到大排序为\n");for (i = 0; i < 10; i ++){ printf("%4d",a[i]); } }void iSort(int x[],int n){int i,j,t,iPos;for (i = 0; i < n - 1; i ++){iPos = i;for (j = i + 1; j < n; j ++){if (x[j] < x[iPos])iPos = j ;}if (iPos != i){t = x[i];x[i] = x[iPos];x[iPos] = t; } } }/*用函数找素数*/#include<stdio.h>int iPrime(int);int main(){int i,k = 0;55for (i = 1; i < 201; i += 2){k = iPrime(i);if (k == 1)printf("%d\n",i); } }int iPrime(int x){int a;for (a = 2; a <= x/2; a ++){if (x % a == 0)return 0;}return 1; }/*八进制转十进制*/#include<stdio.h>int iChange(char*);int main(){char s[10];int i,k;printf("请输入一个八进制的数");gets(s);k = iChange(s);printf("对应的十进制的数位=%d",k); }int iChange(char *x){char *p;int n = 0;p = x;for(;*p != '\0'; p ++){n = n * 8 + *p - '0'; } }/*用函数将矩阵转置规定是方阵*/#include<stdio.h>void change(int[][4]);int main(){int a[4][4],b[4][4]={0};int i,j;printf("请输入一个四阶矩阵\n");for (i = 0; i < 4; i ++){for (j = 0; j < 4 ;j ++){ scanf("%d",&a[i][j]); }}change(a);printf("转置过后的矩阵式\n");for (i = 0; i < 4; i ++){for (j = 0; j < 4 ;j ++){printf("%3d",a[i][j]);}printf("\n"); } }void change(int x[][4]){int i,j,t;for (i = 0;i < 4; i ++){for (j = 0; j < i; j ++){t = x[i][j];x[i][j] = x[j][i];x[j][i] = t; } } }/*判断是否是对称矩阵以4*4 的矩阵为例*/#include<stdio.h>int dui(int[][4]);int main(){int a[4][4],i,j,k = 0;printf("请输入一个四阶矩阵\n");for (i = 0; i < 4; i ++){66for (j = 0; j < 4 ;j ++){scanf("%d",&a[i][j]);}}k = dui(a);if (k == 1){printf("该矩阵为对称矩阵"); }else{printf("该矩阵不是对称阵");} }int dui(int x[][4]){int i,j,t = 0;for (i = 0;i < 4; i ++){for (j = 0; j < i; j ++){if (x[i][j] == x[j][i])t = 1;} }return t;}/*用函数求cos与sin*/#include<stdio.h>#include<math.h>float icos(float);float isin(float);int main() {float a,cosx,sinx;printf("请输入x\n");scanf("%f",&a);cosx = icos(a);sinx = isin(a);printf("cos(x)=%7.2f\n",cosx);printf("sin(x)=%7.2f\n",sinx);}float icos(float a){int n = 2;float t,k,fcos;k = 0;t = 1;do{t *= (-1) * a * a / (n *( n - 1));k += t;n += 2;}while (fabs(t) >= 1e-6);fcos = 1 + k;return fcos;}float isin(float a){float fsin;fsin=sqrt(1 - (double)icos(a) * (double)icos(a));return fsin;}/*int n = 3;float t,k,fsin;k = 0;t = 1;do{t *= (-1) * a * a / (n * (n - 1));k += t;n += 2;}while (fabs(t) >= 1e-6);fsin =1 + k;return fsin;*//*用函数分别统计26个字母的个数*/#include<stdio.h>void jishu(char str[]);int iCount1[26] = {0};void main(void){char str[80];77int i;printf("请输入字符串");gets(str);jishu(str);printf("26个大写字母的个数分别是\n");for (i = 0; i < 26; i ++){printf("%d\n",iCount1[i]);}}void jishu(char x[]){int i;for (i = 0; x[i] != '\0'; i ++){if (x[i] >= 'A' && x[i] <= 'Z'){iCount1[x[i] - 'A'] ++; } } }位运算/*地位字节按位取反*/#include<stdio.h>void main(void){unsigned int x;printf("请输入数据:");scanf("%d",&x);x = x ^ 0X00ff;printf("%x\n",x);} /*循环移位通过位或运算来实现循环的功能*/#include<stdio.h>void main(void){int a,n;printf("请输入一个整数:\n");scanf("%d",&a);printf("请输入移动的位数:\n");printf("注意:正数代表右移,负数代表左移");scanf("%d",&n);if(n > 0){a = ((a >> n) | (a << ((8 * sizeof(int)) - n)));//右移}if(n < 0){a = ((a << (- n)) | (a >> ((8 * sizeof(int)) - (-n))));//左移}printf("%u\n",a);}/*利用位异或运算加密*/#include<stdio.h>int main(){int stc,code,dst;dst = 0;//加密后code = 1234;//密码printf("请输入明文:\n");scanf("%d",&stc);dst = stc ^ code;printf("\n加密之后的文件是:%d\n",dst);return 0;}/*偶数为清零*/#include<stdio.h>void main(void){int a;printf("请输入");scanf("%d",&a);a = a & 0x5555;printf("%x\n",a);}/*十六进制转二进制*/#include<stdio.h>void main(void){int a,b[32],c = 1,i;scanf("%x",&a);for(i = 0; i < 32; i ++){88b[i] = (a & c) >> i;c <<= 1;}for(i = 31; i >= 0; i --){ printf("%d",b[i]); } }员工工资#include<stdio.h>#define N 1struct man{long ch;char nam[10];int year;float fareJB;float fareYJ;float fareYF;float fareBX;float fareSD;float fareSF;};void fare(struct man *p) {struct man *q;for(q=p;q<p+N;q++){q->fareYF=p->fareJB+p->fareYJ;q->fareSF=q->fareYF-q->fareBX-q->fareSD;}for(q=p;q<p+N;q++){printf("应发工资\t实发工资\n");printf("%5.2f\t%5.2f\n",q->fareYF,q->fareSF);} }void PRINTF(struct man *p){struct man *q=p;printf("职工工号\t姓名\t年龄\t基本工资\t业绩工资\t应发工资\t保险费\t\t水电费\t实发工资\t\n");for(q=p;q<p+N;q++){printf("%8d%10s\t%d\t%8.2f\t%8.2f\t%8.2f\t%8.2f\t%8.2f\t%8.2f\t",q->ch,q->nam,q->year,q->fareJB,q->fareYJ,q->fareYF,q->fareBX,q->fareSD,q->fareSF);} }void main(void){struct man person[N],*per;printf("输入员工信息");for(per=person;per<person+N;per++){gets(per->nam);scanf("%d%d%f%f%f%f",&per->ch,&per->year,&per->fareJB,&per->fareYJ,&per->fareBX,&per->fareSD);}fare(person);PRINTF(person);}部门销售情况管理程序#include<stdio.h>#define N 1struct bumen{long num;char name[20];float get[4];float ave;}a[N];void chazhao(struct bumen *p){long NUM;int i;printf("输入要查找的部门的代码:");scanf("%ld",&NUM);99printf("\n");for(i=0;i<N;i++){if((p+i)->num==NUM){break;}}printf("部门代码\t部门名称\t春季销售额\t 夏季销售额\t秋季销售额\t冬季销售额\t平均值\n");printf("%ld\t %6s\t\t%8.2lf\t%8.2lf\t%8.2 lf\t%8.2lf\t%8.2lf\t\n",p->num,p->name,p->get[0],p->get[1],p->get[2],p->get[3],p->ave);}void qiuave(struct bumen *p){int i,j;float sum=0;for(i=0;i<N;i++){for(j=0;j<4;j++){sum=sum+p[i].get[j];}p[i].ave=sum/4;} } void order(struct bumen *p){struct bumen *min,P;int i,j,k;for(i=0;i<N-1;i++){min=&p[i];for(j=i+1;j<N;j++){if(p[j].ave<min->ave)min=&p[j];}P=p[i];p[i]=*min;*min=P;}printf("部门代码\t部门名称\t春季销售额\t夏季销售额\t秋季销售额\t冬季销售额\t平均值\n");for(k=0;k<N;k++){printf("%ld\t %6s\t\t%8.2lf\t%8.2lf\t%8.2lf\t%8.2lf\t%8.2lf\t\n",p[k].num,p[k].name,p[k].get[0],p[k].get[1],p[k].get[2],p[k].get[3],p[k].ave);}}void main(void){int i,j,n,x;float t;printf("输入部门数据");for(i=0;i<N;i++){scanf("%ld",&a[i].num);scanf("%s",&a[i].name);for(j=0;j<4;j++){scanf("%f",&t);a[i].get[j]=t;}}printf("1.输入部门代码或部门名称,查找此部门的销售情况\n2.计算各部门的平均销售额。
C语言简单程序代码

C语言简单程序代码C语言程序 5-3#include<stdio.h> void main(){char ch;int b,s=0;while((ch=getchar())!='\n'){if(ch<='9'&&ch>='0'){ b=ch-'0';s=s+b;}}printf("%d",s);getchar();}5-4:#include<stdio.h> void main(){int a,b,i,s=0,n;scanf("%d,%d",&a,&b);n=a>b?b:a;for(i=1;i<=n;i++){if(a%i==0&&b%i==0)s=i;}printf("%d",s);getchar();}5-5:#include<stdio.h> void main() { char ch;while((ch=getchar())!='\n') { if(ch<='Z'&&ch>='A')ch=ch+32;printf("%c",ch);}}5-6:#include<stdio.h> void main() {int i,n;float a=1,b=2,s=0,t;scanf("%d",&n);for(i=1;i<=n;i++){s=s+b/a;b=a+b;a=b-a;}printf("%.4f",s); }5-7:#include<stdio.h> void main() {int a[10];int i,t,s;for(i=0;i<=9;i++)scanf("%d",&a[i]);s=a[0];for(i=1;i<=9;i++){if(a[i]>s)s=s;else s=a[i];}printf("%d",s); }1031:(统计单词)#include<stdio.h> void main() {int n=0,a=0;char ch;while((ch=getchar())!='\n'){if(ch==' ')a=0;else if(a==0){ n=n+1;a=1;}}printf("%d",n);}1042:(富翁问题)#include<stdio.h> void main() {int m,i,a=0,b=0;float s;s=0.1;scanf("%d",&m);for(i=1;i<=38;i++){a=a+m*i;s=2*s;b=b+s;if(a<b)break;}printf("%d",i+1); }1028:(素数)#include<stdio.h> void main(){int i,j,t,n=0;for(i=2;i<=200;i++){for(j=2;j<i;j++){ if(i%j==0) break;}if(j==i){ printf("%d",i);n=n+1;if(n%1==0)printf("\n");/*printf要受外面的if控制,否则n为30时隔了很多个数才有素数,搞到要连续换行*/}}}1035:(菱形)#include<stdio.h> void main(){int i,j,n,a;scanf("%d",&n);n=2*n+1;for(i=1;i<=n;i++){a=(n+1)/2;for(j=1;j<=(i<a?a-i:i-a);j++)printf(" ");for(j=1;j<=(i<=a?2*i-1:2*(n-i)+1);j++)printf("*");printf("\n");}}1038:打印图案(只限数字1~9) #include<stdio.h> void main() {int i,j,n,a,b,e,f,g;char ch,d;ch='1';scanf("%d",&n);n=2*n-1;a=(n+1)/2;for(i=1;i<=n;i++){for(j=1;j<=(i<a?a-i:i-a);j++)printf(" ");for(j=1;j<=(i<=a?2*i-1:2*(n-i)+1);j++){if(i<=a){ if((b=ch-'0')<=i){ printf("%c",ch);ch=ch+1;d=ch;}else{d=d-2;printf("%c",d); d=d+1;}}else{e=n-i+1;if((f=ch-'0')<=e) {printf("%c",ch); ch=ch+1;g=ch;}else{g=g-2;printf("%c",g); g=g+1;}}}ch='1';printf("\n");}}改进版:(适合所有数)#include<stdio.h> void main(){int i,j,n,a,b,e,f,g;int ch,d;ch=1;scanf("%d",&n);n=2*n-1;a=(n+1)/2;for(i=1;i<=n;i++){for(j=1;j<=(i<a?a-i:i-a);j++)printf(" ");for(j=1;j<=(i<=a?2*i-1:2*(n-i)+1);j++) {if(i<=a){ if((b=ch-0)<=i){ printf("%d",ch);ch=ch+1;d=ch;}else{d=d-2;printf("%d",d);d=d+1;}}else{e=n-i+1;if((f=ch-0)<=e){printf("%d",ch);ch=ch+1;g=ch;}else{g=g-2;printf("%d",g);g=g+1;}}}ch=1;printf("\n");}}1039#include<stdio.h> void main() {int a[10],i;for(i=0;i<=9;i++)scanf("%d ",&a[i]);for(i=9;i>=0;i--)printf(" %d",a[i]); }1040:(自制的)#include<stdio.h> void main(){int a[21],b=20,j,i,c=0;for(i=1;i<=20;i++)scanf("%d",&a[i]);for(i=1;i<=20;i++){for(j=i+1;j<=20;j++){if(a[i]==a[j]){ c=c++;break;}}}b=b-c;printf("%d",b); }#include<stdio.h> (别人的)void main(){int a[20],i,j,n=0; for(i=0;i<20;i++) scanf("%d",&a[i]); for(i=0;i<20;i++) {for(j=0;j<i;j++)if(a[i]==a[j]&&i!=j) {n++;break;}}printf("%d\n",20-n);}1062:#include<stdio.h> void main(){int a[3][4];int i,j,c,n=0;for(i=0;i<=2;i++) {for(j=0;j<=3;j++){scanf("%d",&a[i][j]);}}for(j=0;j<=3;j++) { for(i=0;i<=2;i++) {c=a[i][j];printf("%d ",c);n++;if(n%3==0)printf("\n");}}}冒泡排序:#include<stdio.h> void main(){int a[10];int i,j,t;for(i=0;i<=9;i++)scanf("%d",&a[i]);for(j=0;j<=8;j++){for(i=0;i<=(9-j);i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}}for(i=0;i<=9;i++)printf("%d ",a[i]); }高精度计算:#include<stdio.h> void main(){char ch;int a[100],b[100],i=1,c[100],d[100],e=1,h,j,k; while((ch=getchar())!='\n'){a[i]=ch-'0';i++;}while((ch=getchar())!='\n') {b[e]=ch-'0';e++;}i--;e--;h=(i>e?i:e);d[h]=0;k=h;for(;h!=0;h--){ c[h]=(a[i]+b[e]+d[h])%10; d[h-1]=(a[i]+b[e])/10;i--;e--;if(e==0){b[1]=0;e++;}if(i==0){a[1]=0;i++;}}for(j=1;j!=(k+1);j++)printf("%d",c[j]); } 1121:#include<stdio.h>#include<string.h>void main(){char s[20];strcpy(s,"abcdefghijklmn");printf("%s",s);}1123:#include<stdio.h>#include<string.h>void main(){char s[50];printf("what's your name?");gets(s);printf("your name is ");printf("%s",s);}1122:#include<stdio.h> #include<string.h> void main() {char s1[100],s2[100],s3[100];gets(s1);gets(s2);gets(s3);strcat(s1,s2);printf("%s",s1);printf("%s",s3); }1050:#include<stdio.h> #include<string.h> void main() {char s1[100],s2[100];int i,j,a,b,p,c,d,n;gets(s1);gets(s2);a=strlen(s1);b=strlen(s2);p=1;i=0;j=0;while(p==1){if(s1[i]==s2[j]){ n=i;c=i;d=j;for(;d<=(b-1);d++){if(s1[c]==s2[d])c++;else break;}if(b==d)p=0;}i++;}printf("%d ",n+1); }1059:#include<stdio.h> int max(int m,int n) { int r;while((r=m%n)!=0){m=n;n=r;}return n;}void main(){int a,b,n;scanf("%d%d",&a,&b);printf("%d\n",max(a,b));}1083:#include<stdio.h> int fac(int n) {int s=1;while(n!=1){s=s*n;n--;}return s;}void main(){int n;scanf("%d",&n);printf("%d",fac(n));}1124:#include<stdio.h> int fl(int x){static int z=3,y=0;y++;z++;return(x+y+z); }void main(){int a=1,k;for(k=0;k<3;k++)printf("%4d",fl(a)); }。
C语言基础训练代码(10条)

C语言基础训练代码(10条)1. 输入两个整数,输出它们的和。
#include <stdio.h>int main() {int a, b, sum;scanf("%d%d", &a, &b);sum = a + b;printf("%d + %d = %d\n", a, b, sum);return 0;}2. 计算一个整数的阶乘。
#include <stdio.h>int main() {int n, i;long long fact = 1;scanf("%d", &n);for (i = 1; i <= n; ++i) {fact *= i;}printf("%d! = %lld\n", n, fact);return 0;}3. 输入三角形三边的长度,判断是否为直角三角形。
#include <stdio.h>int main() {double a, b, c;scanf("%lf%lf%lf", &a, &b, &c);if ((a*a + b*b == c*c) || (a*a + c*c == b*b) || (b*b + c*c == a*a))printf("是直角三角形\n");elseprintf("不是直角三角形\n");return 0;}4. 输入一个字符,判断它是否为大写字母。
#include <stdio.h>int main() {char ch;scanf("%c", &ch);if (ch >= 'A' && ch <= 'Z')printf("%c是大写字母\n", ch);elseprintf("%c不是大写字母\n", ch);return 0;}5. 输入一个整数,判断它是否为素数。
c语言简短代码

c语言简短代码C语言是一种广泛应用于计算机编程领域的高级程序设计语言。
它具有简洁、高效、灵活等特点,被广泛应用于操作系统、嵌入式系统、游戏开发等领域。
下面将通过一段C语言简短代码来介绍C语言的基本语法和一些常用功能。
```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```以上代码是C语言中最简单的程序,被称为“Hello, World!”程序。
它的输出结果是在终端上显示一行字符:"Hello, World!"。
下面将逐步解析这段代码,让大家对C语言有一个初步的了解。
代码的第一行是一个预处理命令,`#include <stdio.h>`,该命令的作用是引入标准输入输出库的头文件,以便后续的`printf`函数能够正常使用。
头文件是C语言中用来包含函数原型和宏定义的文件,通过引入头文件,我们可以使用里面定义的函数和宏。
接下来,代码中的`int main()`是C语言程序的入口函数。
所有的C 程序都必须包含一个`main`函数,它是程序的起始点。
`int`表示`main`函数的返回值类型是整型,而`main`函数后面的`()`表示该函数没有参数。
`printf`是C语言中的一个输出函数,它的作用是将指定的字符串输出到终端。
在这个例子中,我们将字符串"Hello, World!\n"作为参数传给`printf`函数,`\n`表示换行符。
通过调用`printf`函数,我们可以在终端上输出我们想要的内容。
代码中的`return 0;`语句表示程序正常结束。
在C语言中,`return`语句用于结束函数的执行,并返回一个值。
在`main`函数中,`return 0;`表示程序执行成功,返回值为0。
通过以上的代码解析,我们可以看到C语言的基本语法结构。
C语言程序设计及程序代码

C语言程序设计及程序代码C语言是一种广泛应用于程序设计的高级编程语言,它可以用于开发各种类型的应用程序,包括操作系统、嵌入式系统、游戏等。
C语言有着简洁、高效的特点,使得它成为了很多程序员的首选编程语言之一在C语言中,程序的核心是函数。
一个C程序由一个或多个函数组成,每个函数都是一组语句的集合。
函数可以接受参数并返回一个值。
C语言提供了丰富的库函数,可以方便地进行输入输出、数学运算、字符串操作等。
下面是一个简单的C语言程序示例,通过输入两个数并计算它们的和:```c#include <stdio.h>int maiint num1, num2, sum;printf("请输入第一个数:");scanf("%d", &num1);printf("请输入第二个数:");scanf("%d", &num2);sum = num1 + num2;printf("两个数的和为:%d\n", sum);return 0;```在上述程序中,首先我们在程序开始处包含了`<stdio.h>`头文件,它是C语言标准库中的一个输入输出函数库。
然后,我们定义了一个`main(`函数作为程序的入口。
在函数内部,我们声明了三个整型变量`num1`、`num2`和`sum`,用于存储用户输入的数以及计算结果。
接下来,在使用`printf(`函数输出提示信息后,我们使用`scanf(`函数接受用户输入的两个数并将其赋值给`num1`和`num2`变量。
然后,我们使用`sum = num1 + num2`语句计算两个数的和。
最后,我们使用`printf(`函数输出计算结果,并通过`return 0`语句结束程序。
通过这个简单的例子,我们可以看出C语言的基本语法结构是很简洁和易于理解的。
除了基本的输入输出操作,C语言还提供了丰富的语法和数据类型,可以进行循环、条件判断、数组、指针等操作,使得程序设计更加灵活和高效。
简单的c语言程序代码

简单的c语言程序代码C语言是一种简单而强大的编程语言,广泛用于计算机科学和软件开发领域。
它的语法简洁明了,易于理解和学习。
在本文中,我们将介绍一些简单的C语言程序代码示例,以帮助初学者入门。
1. Hello, World!"Hello, World!"是编程中最简单的程序,它可以让我们在屏幕上输出一条简单的问候语。
以下是使用C语言编写的Hello World程序的示例代码:```c#include <stdio.h>int main() {printf("Hello, World!");return 0;}```在这个示例中,我们使用了`stdio.h`头文件,其中包含了输入输出函数的定义。
`printf`函数用于将文本输出到屏幕上。
`int main()`是程序的主函数,程序从这里开始执行。
`return 0;`语句表示程序执行成功。
2. 计算两个数的和这个示例程序可以计算两个数的和,并将结果打印到屏幕上。
以下是示例代码:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d%d", &num1, &num2);sum = num1 + num2;printf("两个数的和是:%d", sum);return 0;}```在这个程序中,我们首先声明了三个整型变量`num1`、`num2`和`sum`。
`printf`函数用于显示提示信息,要求用户输入两个整数。
然后,使用`scanf`函数将用户输入的值存储在`num1`和`num2`中。
接下来,我们计算两个数的和,将结果存储在`sum`中,并使用`printf`函数将结果显示在屏幕上。
3. 判断一个数是否为正数下面是一个简单的程序示例,可以判断用户输入的数是否为正数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
创作编号:GB8878185555334563BT9125XW创作者:凤呜大王*1.要求在屏幕上输出下一行信息。
This is a c program.程序:#include<stdio.h>int main(){printf(“this is a c program.\n”);return 0;}2.求两个整数之和。
程序:#include<stdio.h>int main(){int a,b,sum;a=122;b=234;sum=a+b;printf(“sum is %d\n”,sum);return 0;}3.求两个整数之间的较大者。
程序:#include<stdio.h>int main(){int max(int x,int y);int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d\n",c);return 0;}int max(int x,int y){int z;if(x>y)z=x;else z=y;return(z);}4.有人用温度计测量出华氏发表示的温度(如69°F),今要求把她转换成以摄氏法表示的温度(如20℃)。
公式:c=5(f-32)/9.其中f代表华氏温度,c代表摄氏温度。
程序:#include<stdio.h>int main(){float f,c;f=64.0;c=(5.0/9)*(f-32);printf("f=%f\nc=%f\n",f,c);return 0;}5.计算存款利息。
有1000元,想存一年。
有一下三种方法可选:(1)活期:年利率为r1;(2)一年定期:年利率为r2;(3)存两次半年定期:年利率为r3。
分别计算一年后按三种方法所得到的本息和。
程序:#include<stdio.h>创作编号:GB8878185555334563BT9125XW创作者:凤呜大王*int main(){floatp0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;p1=p0*(1+r1);p2=p0*(1+r2);p3=p0*(1+r3/2)*(1+r3/2);printf("p1=%f\np2=%f\np3=%f\n",p1,p2,p3);return 0;}6.给定一个大写字母,要求以小写字母输出。
程序:#include<stdio.h>int main(){char c1,c2;c1=’A’;c2=c1+32;printf(“%c\n”,c2);printf(“%d\n”,c2);return 0;}7.给出三角形的三边长,求三角形的面积。
公式:若给定三角形的三边长,且任意两边之长大于第三边。
则:area=其中s=(a+b+C)/2.程序:#include<stdio.h>#include<math.h>int main(){double a,b,c,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“a=%f\tb=%f\tc=%f\n”,a,b,c);printf(“area=%f\n”,area);return 0;}8.求ax2+bx+c=0方程的根。
a,b,c由键盘输入,设b2-4ac>0.程序:#include<stdio.h>#include<math.h>int main(){double a,b,c,disc,x1,x2,p,q;scanf(“%lf%lf%lf”,&a,&b,&c);disc=b*b-4*a*c;if(disc<0)printf(“This question has no real roots\n”);else{p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“x1=%7.2f\nx2=%7.2f\n”,x1,x2);}return 0;}9.先后输出BOY三个字符。
程序:#include<stdio.h>int main(){创作编号:GB8878185555334563BT9125XW创作者:凤呜大王*char a=’B’,b=’O’,c=’Y’;putchar(a);putchar(b);putchar(c);putchar(‘\n’);return 0;}10.用三个getchar函数先后向计算机输入BOY三个字符,然后用putchar函数输出。
程序:#include<stdio.h>int main(){char a,b,c;a=getchar();b=getchar();c=getchar();putchar(a);putchar(b);putchar(c);putchar(‘\n’);return 0;}或#include<stdio.h>int main(){putchar(getchar());putchar(getchar());putchar(getchar());putchar(‘\n’);return 0;}11.用getchar函数从键盘读入一个大写字母,把它转换成小写字母,然后用getchar函数输出对应的小写字母。
程序:#include<stdio.h>int main(){char c1,c2;c1=getchar();c2=c1+32;putchar(c2);putchar(‘\n’);return 0;}12.输入两个实数,按代数值由小到大的顺序输出这两个数。
(参照将两个杯子中的水互换,必须借助第三个杯子)。
程序:#include<stdio.h>int main(){float a,b,t;scanf(“%f,%f”,&a,&b);if(a>b){t=a;a=b;b=t;}printf(“%5.2f,%5.2f\n”,a,b);return 0;}13.输入a,b,c三个数,要求由小到大的顺序输出。
程序:#include<stdio.h>int main(){float a,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a>b);{t=a;a=b;b=t;}if(a>c){t=a;创作编号:GB8878185555334563BT9125XW创作者:凤呜大王*a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f\n",a,b,c);return 0;}14.输入一个字符,判断它是否为大写字母,如果是,将它转换成小写字母,如果不是,不转换。
然后输出最后得到的字符。
程序:#include<stdio.h>int main(){char ch;scanf(“%c”,&ch);ch=(ch>=’A’&&ch<=’Z’)?(ch+32):ch;printf(“%c\n”,ch);return 0;}或#include<stdio.h>int main(){char ch;scanf("%c",&ch);if(ch>='A'&&ch<='Z')printf("%c\n",ch+32);elseprintf("%c\n",ch);return 0;}15.有一个函数:y=编一程序。
输入一个x的值,要求输出相应的y值。
程序:#include<stdio.h>int main(){int x,y;scanf("%d",&x);if(x<0)y=-1;elseif(x==0)y=0;elsey=1;printf("x=%d\ny=%d\n",x,y);return 0;}16.要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70-84分。
C等为60-69分,D等为60分以下。
成绩的等级由键盘输入。
程序:#include<stdio.h>int main(){char grade;scanf("%c",grade);printf("You score:\n");switch(grade){case'A':printf("85~100\n");break;case'B':printf("70~84\n");break;case'C':printf("60~69\n");break;case'D':printf("<60\n");break;default:printf("enter date error\n");}return 0;}17.写一程序,判断某一年是否为闰年。
程序:#include<stdio.h>int main(){int leap,year;printf("please enter year:");scanf("%d",&year);if(year%4==0){if(year%100==0){if(year%400==0)创作编号:GB8878185555334563BT9125XW创作者:凤呜大王*leap=1;elseleap=0;}elseleap=1;}else leap=0;if(leap)printf("%d is a leap year\n",year);elseprintf("%d is not a leap year\n",year);return 0;}或#include<stdio.h>int main(){int leap,year;printf("please enter year:");scanf("%d",&year);if(year%4!=0)leap=0;else if(year%100!=0)leap=1;else if(year%400!=0)leap=0;elseleap=1;if(leap==1)printf("%d is a leap year\n",year);elseprintf("%d is not a leap year\n",year);return 0;}或#include<stdio.h>int main(){int leap,year;printf("please enter year:");scanf("%d",&year);if((year%4==0&&year%100!=0)||(year%400==0)) leap=1;elseleap=0;if(leap==1)printf("%d is a leap year\n",year);elseprintf("%d is not a leap year\n",year);return 0;}18. 求ax2+bx+c=0方程的根。