基础知识.docx
《基础知识.docx》由会员分享,可在线阅读,更多相关《基础知识.docx(25页珍藏版)》请在冰豆网上搜索。
基础知识
1,判断一个正整数是否为质数。
#include
intmain(void)
{
inta,i;
printf("pleaseinputanumber:
\n");
scanf("%d",&a);
for(i=2;i{if(a%i==0)break;}if(i==a||1==a)printf("%disaprimenumber\n",a);elseprintf("%disnotaprimenumber\n",a);getchar();return0;} 2循环的嵌套,计算式子的值。#includeintmain(void){inti,j;longt=5,sum=0;for(i=1;i<=10;i++){for(j=1;jt=t*5;sum=sum+t;t=5;}printf("Theresultis\n%ld",sum);getchar();return0;}解析:这是一个典型的二重循环的例子,内层循环用来求解,n=1,2,...10;外层循环用来求解总和。本程序运行结果为:122070303.打印出“水仙花数”所谓“水仙花数”就是指1个三位数,各位数字的立方和等于该数本身。例如。#includeintmain(void){inti,a,b,c;for(i=100;i<1000;i++){a=i/100;b=i%100/10;c=i%100%10;if(i==a*a*a+b*b*b+c*c*c)printf("%d",i);}getchar();return0;}本程序运行结果为:153370371407 4.计算式子的和。分析:这也是一个典型的二重循环的问题,玄幻嵌套。#includeintmain(void){inti,j;longt,sum=0;for(i=1;i<=10;i++){for(j=1,t=1;j<=i;j++)t=t*j;sum=sum+t;}printf("Theresultis:%ld",sum);getchar();return0;}本程序运行结果为:Theresultis:4037913 5.找出50---100内的全部质数。分析:同样为二重的循环嵌套问题,内层循环用于判断质数,外城循环的作用是筛选出50-100的所有质数。#includeintmain(void){inti,j;for(i=50;i<=100;i++){for(j=2;jif(i%j==0)break;if(i==j)printf("%d",i);//表明内层循环顺利结束,也就表明i为质数}getchar();return0;}本程序运行结果为:535961677173798389976.函数的嵌套调用。(计算式子的值)解析:本题目可以直接用循环嵌套调用即可,但是用函数嵌套的话可读性更强。#includeintPOW(intn){inti,j=1;for(i=1;i<=n;i++)j=j*n;returnj;}intsum(intn){inti,s=0;for(i=1;i<=n;i++)s=s+POW(i);returns;}intmain(void){intS;S=sum(5);printf("Theresultis:%d",S);getchar();return0;}程序运行结果为:Theresultis:34137.求得阶乘采用递归调用实现。#includelongFact(intn){if(n==0)return1;elsereturnn*Fact(n-1);}intmain(void){intn;longf;printf("Pleaseinputanumber:\n");scanf("%d",&n);f=Fact(n);printf("Fact(%d)=%ld",n,f);getchar();return0;}8.选择排序演示。(一维数组的应用)从小到大排列。#include#defineMAX10intmain(void){inti,j,t,sort[MAX],min;printf("Pleaseinputteninterger:\n");for(i=0;iscanf("%d",&sort[i]);for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j]{t=min;min=sort[j];sort[j]=t;}sort[i]=min;比较结束,将min值放在第一个位置上。}printf("Theresultofsortis:\n");for(i=0;iprintf("%d",sort[i]);getchar();return0;} 9、应用二维数组实现矩阵的转置运算。#includeintmain(void){inti,j,a[3][4],b[4][3];printf("Pleaseinput3x4matrix\n");for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",a[i][j]);for(i=0;i<4;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];printf("Thereviermatrixis\n");for(i=0;i<4;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}getchar();return0;}10、矩阵的乘法#includeintmain(void){intA[3][3]={(1,2,0),(2,3,5),(1,1,1)};intB[3][3]={(2,2,3),(1,3,1),(0,0,1)};intC[3][3]/*={(0,0,0),(0,0,0),(0,0,0)}*/;inti,j,k;for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++){C[i][j]=/*C[i][j]+*/A[i][k]*B[k][j];}printf("Theresultis\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",C[i][j]);printf("\n");}getchar();return0;} 11、用指针变量作为函数的参数解决两个变量的内容对调问题。#includeintswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}intmain(void){inta=1,b=10;printf("a=%d,b=%d\n",a,b);swap(&a,&b);printf("a=%d,b=%d\n",a,b);getchar();return0;} 11.输入X,Y,Z三个整数,编写一个程序使它们按照从小到大的顺序输出。#includevoidswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}voidexchange(int*p1,int*p2,int*p3){if(*p1>*p2)swap(p1,p2);if(*p2>*p3)swap(p2,p3);if(*p1>*p2)swap(p1,p2);}intmain(void){intx,y,z;scanf("%d,%d,%d",&x,&y,&z);exchange(&x,&y,&z);printf("%d,%d,%d\n",x,y,z);getchar();return0;}12、用指针引用数组元素的方法输出一个数组中的元素。#includeintmain(void){inta[5],i,*p;p=a;for(i=0;i<5;i++)scanf("%d",p++);p=a;for(i=0;i<5;i++)printf("%d",*(p++));getchar();return0;}13,编写函数,实现“从10个数中找出最大值和最小值”,并给出测试函数。#includeintmax,min;voidmax_min_value(intarray[],intn){int*p,*array_end;array_end=array+n;max=min=*array;for(p=array+1;p{if(*p>max)max=*p;elseif(*pmin=*p;}}intmain(void){inti,number[10];printf("Input10intergernumbers:\n");for(i=0;i<10;i++)scanf("%d",&number[i]);max_min_value(number,10);printf("\nmax=%d,min=%d\n",max,min);getch();return0;}14.编写一个函数实现矩阵的转置运算。#includevoidinputmatrix(int(*a)[4],int,int);voidoutputmatrix(int(*b)[4],int,int);voidreverse(int(*a)[4],int(*b)[3]);intmain(void){inta[3][4],b[4][3];printf("Pleaseinput3x4matrix:\n");inputmatrix(a,3,4);reverse(a,b);printf("Thereviermatrixis:\n");outputmatrix(b,4,3);getch();return0;}voidinputmatrix(int(*a)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{scanf("%d",*(a+i)+j);}}}voidoutputmatrix(int(*b)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{printf("%d",*(b+i)+j);}printf("\n");}}voidreverse(int(*a)[4],int(*b)[3]){inti,j;for(i=0;i<4;i++){for(j=0;j<3;j++)b[i][j]=a[j][i];}}15、采用一次性输入输出的方法进行字符串操作。#includeintmain(){charstr[20];scanf("%s",str);printf("%s",str);getch();return0;}16、编写一个函数,要求把一个字符串的内容复制到另一个字符串中。#includecopy(char*s,char*q);intmain(){char*str,strcp[20],*p;str="helloworld!";p=strcp;copy(str,p);printf("%s",strcp);getch();return0;}copy(char*s,char*q){inti=0;while(*(s+i)){*q=*(s+i);i++;q++;}*q='\0';}17、指向函数的指针演示。#includeintmain(){intmax(inta,intb);int(*pmax)();intx,y,z;pmax=max;printf("input2interger:\n");scanf("%d%d",&x,&y);z=(*pmax)(x,y);printf("max=%d",z);getch();return1;}intmax(inta,intb){if(a>b)returna;elsereturnb;} 18、返回指针的函数。(返回值为指针的函数演示)#includeintmain(){intmaxp(int*p,intn);inta[10],*max,i;printf("input10interger:\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}max=maxp(a,10);printf("Themaxnumis:%d",*max);getch();return1;}intmaxp(int*p,intn){inti,*max;max=p;for(i=0;i{if(*(p+i)>*max)max=p+i;}returnmax;} 19、对学生信息记录按照学号从小到大顺序排序。(结构体应用)对一般的数据类型数组,可以选用“冒泡排序”,也可以选择排序的算法。这些算法对于结构体数组同样适用。记住在结构体应用中定义后“;“必不可少啊。#include#defineMAX6structstu{intnum;charname[5];};intmain(void){inti,j;structstusort[MAX],min,t;printf("Pleaseinputsixstudentsrecords:\n");for(i=0;i{printf("number:");scanf("%d",&sort[i].num);printf("name:");scanf("%s",&sort[i].name);}for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
if(a%i==0)break;
}
if(i==a||1==a)
printf("%disaprimenumber\n",a);
else
printf("%disnotaprimenumber\n",a);
getchar();
return0;
2循环的嵌套,计算式子
的值。
inti,j;
longt=5,sum=0;
for(i=1;i<=10;i++)
for(j=1;j
t=t*5;
sum=sum+t;
t=5;
printf("Theresultis\n%ld",sum);
解析:
这是一个典型的二重循环的例子,内层循环用来求解
,n=1,2,...10;外层循环用来求解总和
。
本程序运行结果为:
12207030
3.打印出“水仙花数”
所谓“水仙花数”就是指1个三位数,各位数字的立方和等于该数本身。
例如
inti,a,b,c;
for(i=100;i<1000;i++)
a=i/100;
b=i%100/10;
c=i%100%10;
if(i==a*a*a+b*b*b+c*c*c)
printf("%d",i);
153370371407
4.计算式子
的和。
分析:
这也是一个典型的二重循环的问题,玄幻嵌套。
longt,sum=0;
for(j=1,t=1;j<=i;j++)
t=t*j;
printf("Theresultis:
%ld",sum);
Theresultis:
4037913
5.找出50---100内的全部质数。
同样为二重的循环嵌套问题,内层循环用于判断质数,外城循环的作用是筛选出50-100的所有质数。
for(i=50;i<=100;i++)
for(j=2;j
if(i%j==0)break;
if(i==j)printf("%d",i);//表明内层循环顺利结束,也就表明i为质数
53596167717379838997
6.函数的嵌套调用。
(计算式子
的值)
本题目可以直接用循环嵌套调用即可,但是用函数嵌套的话可读性更强。
intPOW(intn)
inti,j=1;
for(i=1;i<=n;i++)
j=j*n;
returnj;
intsum(intn)
inti,s=0;
s=s+POW(i);
returns;
intS;
S=sum(5);
%d",S);
程序运行结果为:
Theresultis:
3413
7.求
得阶乘
采用递归调用实现。
longFact(intn)
if(n==0)
return1;
returnn*Fact(n-1);
intn;
longf;
printf("Pleaseinputanumber:
scanf("%d",&n);
f=Fact(n);
printf("Fact(%d)=%ld",n,f);
8.选择排序演示。
(一维数组的应用)从小到大排列。
#defineMAX10
inti,j,t,sort[MAX],min;
printf("Pleaseinputteninterger:
for(i=0;iscanf("%d",&sort[i]);for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j]{t=min;min=sort[j];sort[j]=t;}sort[i]=min;比较结束,将min值放在第一个位置上。}printf("Theresultofsortis:\n");for(i=0;iprintf("%d",sort[i]);getchar();return0;} 9、应用二维数组实现矩阵的转置运算。#includeintmain(void){inti,j,a[3][4],b[4][3];printf("Pleaseinput3x4matrix\n");for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",a[i][j]);for(i=0;i<4;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];printf("Thereviermatrixis\n");for(i=0;i<4;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}getchar();return0;}10、矩阵的乘法#includeintmain(void){intA[3][3]={(1,2,0),(2,3,5),(1,1,1)};intB[3][3]={(2,2,3),(1,3,1),(0,0,1)};intC[3][3]/*={(0,0,0),(0,0,0),(0,0,0)}*/;inti,j,k;for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++){C[i][j]=/*C[i][j]+*/A[i][k]*B[k][j];}printf("Theresultis\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",C[i][j]);printf("\n");}getchar();return0;} 11、用指针变量作为函数的参数解决两个变量的内容对调问题。#includeintswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}intmain(void){inta=1,b=10;printf("a=%d,b=%d\n",a,b);swap(&a,&b);printf("a=%d,b=%d\n",a,b);getchar();return0;} 11.输入X,Y,Z三个整数,编写一个程序使它们按照从小到大的顺序输出。#includevoidswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}voidexchange(int*p1,int*p2,int*p3){if(*p1>*p2)swap(p1,p2);if(*p2>*p3)swap(p2,p3);if(*p1>*p2)swap(p1,p2);}intmain(void){intx,y,z;scanf("%d,%d,%d",&x,&y,&z);exchange(&x,&y,&z);printf("%d,%d,%d\n",x,y,z);getchar();return0;}12、用指针引用数组元素的方法输出一个数组中的元素。#includeintmain(void){inta[5],i,*p;p=a;for(i=0;i<5;i++)scanf("%d",p++);p=a;for(i=0;i<5;i++)printf("%d",*(p++));getchar();return0;}13,编写函数,实现“从10个数中找出最大值和最小值”,并给出测试函数。#includeintmax,min;voidmax_min_value(intarray[],intn){int*p,*array_end;array_end=array+n;max=min=*array;for(p=array+1;p{if(*p>max)max=*p;elseif(*pmin=*p;}}intmain(void){inti,number[10];printf("Input10intergernumbers:\n");for(i=0;i<10;i++)scanf("%d",&number[i]);max_min_value(number,10);printf("\nmax=%d,min=%d\n",max,min);getch();return0;}14.编写一个函数实现矩阵的转置运算。#includevoidinputmatrix(int(*a)[4],int,int);voidoutputmatrix(int(*b)[4],int,int);voidreverse(int(*a)[4],int(*b)[3]);intmain(void){inta[3][4],b[4][3];printf("Pleaseinput3x4matrix:\n");inputmatrix(a,3,4);reverse(a,b);printf("Thereviermatrixis:\n");outputmatrix(b,4,3);getch();return0;}voidinputmatrix(int(*a)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{scanf("%d",*(a+i)+j);}}}voidoutputmatrix(int(*b)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{printf("%d",*(b+i)+j);}printf("\n");}}voidreverse(int(*a)[4],int(*b)[3]){inti,j;for(i=0;i<4;i++){for(j=0;j<3;j++)b[i][j]=a[j][i];}}15、采用一次性输入输出的方法进行字符串操作。#includeintmain(){charstr[20];scanf("%s",str);printf("%s",str);getch();return0;}16、编写一个函数,要求把一个字符串的内容复制到另一个字符串中。#includecopy(char*s,char*q);intmain(){char*str,strcp[20],*p;str="helloworld!";p=strcp;copy(str,p);printf("%s",strcp);getch();return0;}copy(char*s,char*q){inti=0;while(*(s+i)){*q=*(s+i);i++;q++;}*q='\0';}17、指向函数的指针演示。#includeintmain(){intmax(inta,intb);int(*pmax)();intx,y,z;pmax=max;printf("input2interger:\n");scanf("%d%d",&x,&y);z=(*pmax)(x,y);printf("max=%d",z);getch();return1;}intmax(inta,intb){if(a>b)returna;elsereturnb;} 18、返回指针的函数。(返回值为指针的函数演示)#includeintmain(){intmaxp(int*p,intn);inta[10],*max,i;printf("input10interger:\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}max=maxp(a,10);printf("Themaxnumis:%d",*max);getch();return1;}intmaxp(int*p,intn){inti,*max;max=p;for(i=0;i{if(*(p+i)>*max)max=p+i;}returnmax;} 19、对学生信息记录按照学号从小到大顺序排序。(结构体应用)对一般的数据类型数组,可以选用“冒泡排序”,也可以选择排序的算法。这些算法对于结构体数组同样适用。记住在结构体应用中定义后“;“必不可少啊。#include#defineMAX6structstu{intnum;charname[5];};intmain(void){inti,j;structstusort[MAX],min,t;printf("Pleaseinputsixstudentsrecords:\n");for(i=0;i{printf("number:");scanf("%d",&sort[i].num);printf("name:");scanf("%s",&sort[i].name);}for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
scanf("%d",&sort[i]);
for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j]{t=min;min=sort[j];sort[j]=t;}sort[i]=min;比较结束,将min值放在第一个位置上。}printf("Theresultofsortis:\n");for(i=0;iprintf("%d",sort[i]);getchar();return0;} 9、应用二维数组实现矩阵的转置运算。#includeintmain(void){inti,j,a[3][4],b[4][3];printf("Pleaseinput3x4matrix\n");for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",a[i][j]);for(i=0;i<4;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];printf("Thereviermatrixis\n");for(i=0;i<4;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}getchar();return0;}10、矩阵的乘法#includeintmain(void){intA[3][3]={(1,2,0),(2,3,5),(1,1,1)};intB[3][3]={(2,2,3),(1,3,1),(0,0,1)};intC[3][3]/*={(0,0,0),(0,0,0),(0,0,0)}*/;inti,j,k;for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++){C[i][j]=/*C[i][j]+*/A[i][k]*B[k][j];}printf("Theresultis\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",C[i][j]);printf("\n");}getchar();return0;} 11、用指针变量作为函数的参数解决两个变量的内容对调问题。#includeintswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}intmain(void){inta=1,b=10;printf("a=%d,b=%d\n",a,b);swap(&a,&b);printf("a=%d,b=%d\n",a,b);getchar();return0;} 11.输入X,Y,Z三个整数,编写一个程序使它们按照从小到大的顺序输出。#includevoidswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}voidexchange(int*p1,int*p2,int*p3){if(*p1>*p2)swap(p1,p2);if(*p2>*p3)swap(p2,p3);if(*p1>*p2)swap(p1,p2);}intmain(void){intx,y,z;scanf("%d,%d,%d",&x,&y,&z);exchange(&x,&y,&z);printf("%d,%d,%d\n",x,y,z);getchar();return0;}12、用指针引用数组元素的方法输出一个数组中的元素。#includeintmain(void){inta[5],i,*p;p=a;for(i=0;i<5;i++)scanf("%d",p++);p=a;for(i=0;i<5;i++)printf("%d",*(p++));getchar();return0;}13,编写函数,实现“从10个数中找出最大值和最小值”,并给出测试函数。#includeintmax,min;voidmax_min_value(intarray[],intn){int*p,*array_end;array_end=array+n;max=min=*array;for(p=array+1;p{if(*p>max)max=*p;elseif(*pmin=*p;}}intmain(void){inti,number[10];printf("Input10intergernumbers:\n");for(i=0;i<10;i++)scanf("%d",&number[i]);max_min_value(number,10);printf("\nmax=%d,min=%d\n",max,min);getch();return0;}14.编写一个函数实现矩阵的转置运算。#includevoidinputmatrix(int(*a)[4],int,int);voidoutputmatrix(int(*b)[4],int,int);voidreverse(int(*a)[4],int(*b)[3]);intmain(void){inta[3][4],b[4][3];printf("Pleaseinput3x4matrix:\n");inputmatrix(a,3,4);reverse(a,b);printf("Thereviermatrixis:\n");outputmatrix(b,4,3);getch();return0;}voidinputmatrix(int(*a)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{scanf("%d",*(a+i)+j);}}}voidoutputmatrix(int(*b)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{printf("%d",*(b+i)+j);}printf("\n");}}voidreverse(int(*a)[4],int(*b)[3]){inti,j;for(i=0;i<4;i++){for(j=0;j<3;j++)b[i][j]=a[j][i];}}15、采用一次性输入输出的方法进行字符串操作。#includeintmain(){charstr[20];scanf("%s",str);printf("%s",str);getch();return0;}16、编写一个函数,要求把一个字符串的内容复制到另一个字符串中。#includecopy(char*s,char*q);intmain(){char*str,strcp[20],*p;str="helloworld!";p=strcp;copy(str,p);printf("%s",strcp);getch();return0;}copy(char*s,char*q){inti=0;while(*(s+i)){*q=*(s+i);i++;q++;}*q='\0';}17、指向函数的指针演示。#includeintmain(){intmax(inta,intb);int(*pmax)();intx,y,z;pmax=max;printf("input2interger:\n");scanf("%d%d",&x,&y);z=(*pmax)(x,y);printf("max=%d",z);getch();return1;}intmax(inta,intb){if(a>b)returna;elsereturnb;} 18、返回指针的函数。(返回值为指针的函数演示)#includeintmain(){intmaxp(int*p,intn);inta[10],*max,i;printf("input10interger:\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}max=maxp(a,10);printf("Themaxnumis:%d",*max);getch();return1;}intmaxp(int*p,intn){inti,*max;max=p;for(i=0;i{if(*(p+i)>*max)max=p+i;}returnmax;} 19、对学生信息记录按照学号从小到大顺序排序。(结构体应用)对一般的数据类型数组,可以选用“冒泡排序”,也可以选择排序的算法。这些算法对于结构体数组同样适用。记住在结构体应用中定义后“;“必不可少啊。#include#defineMAX6structstu{intnum;charname[5];};intmain(void){inti,j;structstusort[MAX],min,t;printf("Pleaseinputsixstudentsrecords:\n");for(i=0;i{printf("number:");scanf("%d",&sort[i].num);printf("name:");scanf("%s",&sort[i].name);}for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
min=sort[i];
for(j=i+1;jif(sort[j]{t=min;min=sort[j];sort[j]=t;}sort[i]=min;比较结束,将min值放在第一个位置上。}printf("Theresultofsortis:\n");for(i=0;iprintf("%d",sort[i]);getchar();return0;} 9、应用二维数组实现矩阵的转置运算。#includeintmain(void){inti,j,a[3][4],b[4][3];printf("Pleaseinput3x4matrix\n");for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",a[i][j]);for(i=0;i<4;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];printf("Thereviermatrixis\n");for(i=0;i<4;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}getchar();return0;}10、矩阵的乘法#includeintmain(void){intA[3][3]={(1,2,0),(2,3,5),(1,1,1)};intB[3][3]={(2,2,3),(1,3,1),(0,0,1)};intC[3][3]/*={(0,0,0),(0,0,0),(0,0,0)}*/;inti,j,k;for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++){C[i][j]=/*C[i][j]+*/A[i][k]*B[k][j];}printf("Theresultis\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",C[i][j]);printf("\n");}getchar();return0;} 11、用指针变量作为函数的参数解决两个变量的内容对调问题。#includeintswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}intmain(void){inta=1,b=10;printf("a=%d,b=%d\n",a,b);swap(&a,&b);printf("a=%d,b=%d\n",a,b);getchar();return0;} 11.输入X,Y,Z三个整数,编写一个程序使它们按照从小到大的顺序输出。#includevoidswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}voidexchange(int*p1,int*p2,int*p3){if(*p1>*p2)swap(p1,p2);if(*p2>*p3)swap(p2,p3);if(*p1>*p2)swap(p1,p2);}intmain(void){intx,y,z;scanf("%d,%d,%d",&x,&y,&z);exchange(&x,&y,&z);printf("%d,%d,%d\n",x,y,z);getchar();return0;}12、用指针引用数组元素的方法输出一个数组中的元素。#includeintmain(void){inta[5],i,*p;p=a;for(i=0;i<5;i++)scanf("%d",p++);p=a;for(i=0;i<5;i++)printf("%d",*(p++));getchar();return0;}13,编写函数,实现“从10个数中找出最大值和最小值”,并给出测试函数。#includeintmax,min;voidmax_min_value(intarray[],intn){int*p,*array_end;array_end=array+n;max=min=*array;for(p=array+1;p{if(*p>max)max=*p;elseif(*pmin=*p;}}intmain(void){inti,number[10];printf("Input10intergernumbers:\n");for(i=0;i<10;i++)scanf("%d",&number[i]);max_min_value(number,10);printf("\nmax=%d,min=%d\n",max,min);getch();return0;}14.编写一个函数实现矩阵的转置运算。#includevoidinputmatrix(int(*a)[4],int,int);voidoutputmatrix(int(*b)[4],int,int);voidreverse(int(*a)[4],int(*b)[3]);intmain(void){inta[3][4],b[4][3];printf("Pleaseinput3x4matrix:\n");inputmatrix(a,3,4);reverse(a,b);printf("Thereviermatrixis:\n");outputmatrix(b,4,3);getch();return0;}voidinputmatrix(int(*a)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{scanf("%d",*(a+i)+j);}}}voidoutputmatrix(int(*b)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{printf("%d",*(b+i)+j);}printf("\n");}}voidreverse(int(*a)[4],int(*b)[3]){inti,j;for(i=0;i<4;i++){for(j=0;j<3;j++)b[i][j]=a[j][i];}}15、采用一次性输入输出的方法进行字符串操作。#includeintmain(){charstr[20];scanf("%s",str);printf("%s",str);getch();return0;}16、编写一个函数,要求把一个字符串的内容复制到另一个字符串中。#includecopy(char*s,char*q);intmain(){char*str,strcp[20],*p;str="helloworld!";p=strcp;copy(str,p);printf("%s",strcp);getch();return0;}copy(char*s,char*q){inti=0;while(*(s+i)){*q=*(s+i);i++;q++;}*q='\0';}17、指向函数的指针演示。#includeintmain(){intmax(inta,intb);int(*pmax)();intx,y,z;pmax=max;printf("input2interger:\n");scanf("%d%d",&x,&y);z=(*pmax)(x,y);printf("max=%d",z);getch();return1;}intmax(inta,intb){if(a>b)returna;elsereturnb;} 18、返回指针的函数。(返回值为指针的函数演示)#includeintmain(){intmaxp(int*p,intn);inta[10],*max,i;printf("input10interger:\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}max=maxp(a,10);printf("Themaxnumis:%d",*max);getch();return1;}intmaxp(int*p,intn){inti,*max;max=p;for(i=0;i{if(*(p+i)>*max)max=p+i;}returnmax;} 19、对学生信息记录按照学号从小到大顺序排序。(结构体应用)对一般的数据类型数组,可以选用“冒泡排序”,也可以选择排序的算法。这些算法对于结构体数组同样适用。记住在结构体应用中定义后“;“必不可少啊。#include#defineMAX6structstu{intnum;charname[5];};intmain(void){inti,j;structstusort[MAX],min,t;printf("Pleaseinputsixstudentsrecords:\n");for(i=0;i{printf("number:");scanf("%d",&sort[i].num);printf("name:");scanf("%s",&sort[i].name);}for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
if(sort[j]{t=min;min=sort[j];sort[j]=t;}sort[i]=min;比较结束,将min值放在第一个位置上。}printf("Theresultofsortis:\n");for(i=0;iprintf("%d",sort[i]);getchar();return0;} 9、应用二维数组实现矩阵的转置运算。#includeintmain(void){inti,j,a[3][4],b[4][3];printf("Pleaseinput3x4matrix\n");for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",a[i][j]);for(i=0;i<4;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];printf("Thereviermatrixis\n");for(i=0;i<4;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}getchar();return0;}10、矩阵的乘法#includeintmain(void){intA[3][3]={(1,2,0),(2,3,5),(1,1,1)};intB[3][3]={(2,2,3),(1,3,1),(0,0,1)};intC[3][3]/*={(0,0,0),(0,0,0),(0,0,0)}*/;inti,j,k;for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++){C[i][j]=/*C[i][j]+*/A[i][k]*B[k][j];}printf("Theresultis\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",C[i][j]);printf("\n");}getchar();return0;} 11、用指针变量作为函数的参数解决两个变量的内容对调问题。#includeintswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}intmain(void){inta=1,b=10;printf("a=%d,b=%d\n",a,b);swap(&a,&b);printf("a=%d,b=%d\n",a,b);getchar();return0;} 11.输入X,Y,Z三个整数,编写一个程序使它们按照从小到大的顺序输出。#includevoidswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}voidexchange(int*p1,int*p2,int*p3){if(*p1>*p2)swap(p1,p2);if(*p2>*p3)swap(p2,p3);if(*p1>*p2)swap(p1,p2);}intmain(void){intx,y,z;scanf("%d,%d,%d",&x,&y,&z);exchange(&x,&y,&z);printf("%d,%d,%d\n",x,y,z);getchar();return0;}12、用指针引用数组元素的方法输出一个数组中的元素。#includeintmain(void){inta[5],i,*p;p=a;for(i=0;i<5;i++)scanf("%d",p++);p=a;for(i=0;i<5;i++)printf("%d",*(p++));getchar();return0;}13,编写函数,实现“从10个数中找出最大值和最小值”,并给出测试函数。#includeintmax,min;voidmax_min_value(intarray[],intn){int*p,*array_end;array_end=array+n;max=min=*array;for(p=array+1;p{if(*p>max)max=*p;elseif(*pmin=*p;}}intmain(void){inti,number[10];printf("Input10intergernumbers:\n");for(i=0;i<10;i++)scanf("%d",&number[i]);max_min_value(number,10);printf("\nmax=%d,min=%d\n",max,min);getch();return0;}14.编写一个函数实现矩阵的转置运算。#includevoidinputmatrix(int(*a)[4],int,int);voidoutputmatrix(int(*b)[4],int,int);voidreverse(int(*a)[4],int(*b)[3]);intmain(void){inta[3][4],b[4][3];printf("Pleaseinput3x4matrix:\n");inputmatrix(a,3,4);reverse(a,b);printf("Thereviermatrixis:\n");outputmatrix(b,4,3);getch();return0;}voidinputmatrix(int(*a)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{scanf("%d",*(a+i)+j);}}}voidoutputmatrix(int(*b)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{printf("%d",*(b+i)+j);}printf("\n");}}voidreverse(int(*a)[4],int(*b)[3]){inti,j;for(i=0;i<4;i++){for(j=0;j<3;j++)b[i][j]=a[j][i];}}15、采用一次性输入输出的方法进行字符串操作。#includeintmain(){charstr[20];scanf("%s",str);printf("%s",str);getch();return0;}16、编写一个函数,要求把一个字符串的内容复制到另一个字符串中。#includecopy(char*s,char*q);intmain(){char*str,strcp[20],*p;str="helloworld!";p=strcp;copy(str,p);printf("%s",strcp);getch();return0;}copy(char*s,char*q){inti=0;while(*(s+i)){*q=*(s+i);i++;q++;}*q='\0';}17、指向函数的指针演示。#includeintmain(){intmax(inta,intb);int(*pmax)();intx,y,z;pmax=max;printf("input2interger:\n");scanf("%d%d",&x,&y);z=(*pmax)(x,y);printf("max=%d",z);getch();return1;}intmax(inta,intb){if(a>b)returna;elsereturnb;} 18、返回指针的函数。(返回值为指针的函数演示)#includeintmain(){intmaxp(int*p,intn);inta[10],*max,i;printf("input10interger:\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}max=maxp(a,10);printf("Themaxnumis:%d",*max);getch();return1;}intmaxp(int*p,intn){inti,*max;max=p;for(i=0;i{if(*(p+i)>*max)max=p+i;}returnmax;} 19、对学生信息记录按照学号从小到大顺序排序。(结构体应用)对一般的数据类型数组,可以选用“冒泡排序”,也可以选择排序的算法。这些算法对于结构体数组同样适用。记住在结构体应用中定义后“;“必不可少啊。#include#defineMAX6structstu{intnum;charname[5];};intmain(void){inti,j;structstusort[MAX],min,t;printf("Pleaseinputsixstudentsrecords:\n");for(i=0;i{printf("number:");scanf("%d",&sort[i].num);printf("name:");scanf("%s",&sort[i].name);}for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
t=min;
min=sort[j];
sort[j]=t;
sort[i]=min;比较结束,将min值放在第一个位置上。
printf("Theresultofsortis:
for(i=0;iprintf("%d",sort[i]);getchar();return0;} 9、应用二维数组实现矩阵的转置运算。#includeintmain(void){inti,j,a[3][4],b[4][3];printf("Pleaseinput3x4matrix\n");for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",a[i][j]);for(i=0;i<4;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];printf("Thereviermatrixis\n");for(i=0;i<4;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}getchar();return0;}10、矩阵的乘法#includeintmain(void){intA[3][3]={(1,2,0),(2,3,5),(1,1,1)};intB[3][3]={(2,2,3),(1,3,1),(0,0,1)};intC[3][3]/*={(0,0,0),(0,0,0),(0,0,0)}*/;inti,j,k;for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=0;k<3;k++){C[i][j]=/*C[i][j]+*/A[i][k]*B[k][j];}printf("Theresultis\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",C[i][j]);printf("\n");}getchar();return0;} 11、用指针变量作为函数的参数解决两个变量的内容对调问题。#includeintswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}intmain(void){inta=1,b=10;printf("a=%d,b=%d\n",a,b);swap(&a,&b);printf("a=%d,b=%d\n",a,b);getchar();return0;} 11.输入X,Y,Z三个整数,编写一个程序使它们按照从小到大的顺序输出。#includevoidswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}voidexchange(int*p1,int*p2,int*p3){if(*p1>*p2)swap(p1,p2);if(*p2>*p3)swap(p2,p3);if(*p1>*p2)swap(p1,p2);}intmain(void){intx,y,z;scanf("%d,%d,%d",&x,&y,&z);exchange(&x,&y,&z);printf("%d,%d,%d\n",x,y,z);getchar();return0;}12、用指针引用数组元素的方法输出一个数组中的元素。#includeintmain(void){inta[5],i,*p;p=a;for(i=0;i<5;i++)scanf("%d",p++);p=a;for(i=0;i<5;i++)printf("%d",*(p++));getchar();return0;}13,编写函数,实现“从10个数中找出最大值和最小值”,并给出测试函数。#includeintmax,min;voidmax_min_value(intarray[],intn){int*p,*array_end;array_end=array+n;max=min=*array;for(p=array+1;p{if(*p>max)max=*p;elseif(*pmin=*p;}}intmain(void){inti,number[10];printf("Input10intergernumbers:\n");for(i=0;i<10;i++)scanf("%d",&number[i]);max_min_value(number,10);printf("\nmax=%d,min=%d\n",max,min);getch();return0;}14.编写一个函数实现矩阵的转置运算。#includevoidinputmatrix(int(*a)[4],int,int);voidoutputmatrix(int(*b)[4],int,int);voidreverse(int(*a)[4],int(*b)[3]);intmain(void){inta[3][4],b[4][3];printf("Pleaseinput3x4matrix:\n");inputmatrix(a,3,4);reverse(a,b);printf("Thereviermatrixis:\n");outputmatrix(b,4,3);getch();return0;}voidinputmatrix(int(*a)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{scanf("%d",*(a+i)+j);}}}voidoutputmatrix(int(*b)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{printf("%d",*(b+i)+j);}printf("\n");}}voidreverse(int(*a)[4],int(*b)[3]){inti,j;for(i=0;i<4;i++){for(j=0;j<3;j++)b[i][j]=a[j][i];}}15、采用一次性输入输出的方法进行字符串操作。#includeintmain(){charstr[20];scanf("%s",str);printf("%s",str);getch();return0;}16、编写一个函数,要求把一个字符串的内容复制到另一个字符串中。#includecopy(char*s,char*q);intmain(){char*str,strcp[20],*p;str="helloworld!";p=strcp;copy(str,p);printf("%s",strcp);getch();return0;}copy(char*s,char*q){inti=0;while(*(s+i)){*q=*(s+i);i++;q++;}*q='\0';}17、指向函数的指针演示。#includeintmain(){intmax(inta,intb);int(*pmax)();intx,y,z;pmax=max;printf("input2interger:\n");scanf("%d%d",&x,&y);z=(*pmax)(x,y);printf("max=%d",z);getch();return1;}intmax(inta,intb){if(a>b)returna;elsereturnb;} 18、返回指针的函数。(返回值为指针的函数演示)#includeintmain(){intmaxp(int*p,intn);inta[10],*max,i;printf("input10interger:\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}max=maxp(a,10);printf("Themaxnumis:%d",*max);getch();return1;}intmaxp(int*p,intn){inti,*max;max=p;for(i=0;i{if(*(p+i)>*max)max=p+i;}returnmax;} 19、对学生信息记录按照学号从小到大顺序排序。(结构体应用)对一般的数据类型数组,可以选用“冒泡排序”,也可以选择排序的算法。这些算法对于结构体数组同样适用。记住在结构体应用中定义后“;“必不可少啊。#include#defineMAX6structstu{intnum;charname[5];};intmain(void){inti,j;structstusort[MAX],min,t;printf("Pleaseinputsixstudentsrecords:\n");for(i=0;i{printf("number:");scanf("%d",&sort[i].num);printf("name:");scanf("%s",&sort[i].name);}for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
printf("%d",sort[i]);
9、应用二维数组实现矩阵的转置运算。
inti,j,a[3][4],b[4][3];
printf("Pleaseinput3x4matrix\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",a[i][j]);
for(i=0;i<4;i++)
for(j=0;j<3;j++)
b[i][j]=a[j][i];
printf("Thereviermatrixis\n");
printf("%d",b[i][j]);
printf("\n");
10、矩阵的乘法
intA[3][3]={(1,2,0),(2,3,5),(1,1,1)};
intB[3][3]={(2,2,3),(1,3,1),(0,0,1)};
intC[3][3]/*={(0,0,0),(0,0,0),(0,0,0)}*/;
inti,j,k;
for(k=0;k<3;k++)
C[i][j]=/*C[i][j]+*/A[i][k]*B[k][j];
printf("Theresultis\n");
printf("%d",C[i][j]);
11、用指针变量作为函数的参数解决两个变量的内容对调问题。
intswap(int*x,int*y)
intt;
t=*x;
*x=*y;
*y=t;
inta=1,b=10;
printf("a=%d,b=%d\n",a,b);
swap(&a,&b);
11.输入X,Y,Z三个整数,编写一个程序使它们按照从小到大的顺序输出。
voidswap(int*x,int*y)
t=*x;*x=*y;*y=t;
voidexchange(int*p1,int*p2,int*p3)
if(*p1>*p2)
swap(p1,p2);
if(*p2>*p3)
swap(p2,p3);
intx,y,z;
scanf("%d,%d,%d",&x,&y,&z);
exchange(&x,&y,&z);
printf("%d,%d,%d\n",x,y,z);
12、用指针引用数组元素的方法输出一个数组中的元素。
inta[5],i,*p;
p=a;
for(i=0;i<5;i++)
scanf("%d",p++);
printf("%d",*(p++));
13,编写函数,实现“从10个数中找出最大值和最小值”,并给出测试函数。
intmax,min;
voidmax_min_value(intarray[],intn)
int*p,*array_end;
array_end=array+n;
max=min=*array;
for(p=array+1;p{if(*p>max)max=*p;elseif(*pmin=*p;}}intmain(void){inti,number[10];printf("Input10intergernumbers:\n");for(i=0;i<10;i++)scanf("%d",&number[i]);max_min_value(number,10);printf("\nmax=%d,min=%d\n",max,min);getch();return0;}14.编写一个函数实现矩阵的转置运算。#includevoidinputmatrix(int(*a)[4],int,int);voidoutputmatrix(int(*b)[4],int,int);voidreverse(int(*a)[4],int(*b)[3]);intmain(void){inta[3][4],b[4][3];printf("Pleaseinput3x4matrix:\n");inputmatrix(a,3,4);reverse(a,b);printf("Thereviermatrixis:\n");outputmatrix(b,4,3);getch();return0;}voidinputmatrix(int(*a)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{scanf("%d",*(a+i)+j);}}}voidoutputmatrix(int(*b)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{printf("%d",*(b+i)+j);}printf("\n");}}voidreverse(int(*a)[4],int(*b)[3]){inti,j;for(i=0;i<4;i++){for(j=0;j<3;j++)b[i][j]=a[j][i];}}15、采用一次性输入输出的方法进行字符串操作。#includeintmain(){charstr[20];scanf("%s",str);printf("%s",str);getch();return0;}16、编写一个函数,要求把一个字符串的内容复制到另一个字符串中。#includecopy(char*s,char*q);intmain(){char*str,strcp[20],*p;str="helloworld!";p=strcp;copy(str,p);printf("%s",strcp);getch();return0;}copy(char*s,char*q){inti=0;while(*(s+i)){*q=*(s+i);i++;q++;}*q='\0';}17、指向函数的指针演示。#includeintmain(){intmax(inta,intb);int(*pmax)();intx,y,z;pmax=max;printf("input2interger:\n");scanf("%d%d",&x,&y);z=(*pmax)(x,y);printf("max=%d",z);getch();return1;}intmax(inta,intb){if(a>b)returna;elsereturnb;} 18、返回指针的函数。(返回值为指针的函数演示)#includeintmain(){intmaxp(int*p,intn);inta[10],*max,i;printf("input10interger:\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}max=maxp(a,10);printf("Themaxnumis:%d",*max);getch();return1;}intmaxp(int*p,intn){inti,*max;max=p;for(i=0;i{if(*(p+i)>*max)max=p+i;}returnmax;} 19、对学生信息记录按照学号从小到大顺序排序。(结构体应用)对一般的数据类型数组,可以选用“冒泡排序”,也可以选择排序的算法。这些算法对于结构体数组同样适用。记住在结构体应用中定义后“;“必不可少啊。#include#defineMAX6structstu{intnum;charname[5];};intmain(void){inti,j;structstusort[MAX],min,t;printf("Pleaseinputsixstudentsrecords:\n");for(i=0;i{printf("number:");scanf("%d",&sort[i].num);printf("name:");scanf("%s",&sort[i].name);}for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
if(*p>max)
max=*p;
if(*pmin=*p;}}intmain(void){inti,number[10];printf("Input10intergernumbers:\n");for(i=0;i<10;i++)scanf("%d",&number[i]);max_min_value(number,10);printf("\nmax=%d,min=%d\n",max,min);getch();return0;}14.编写一个函数实现矩阵的转置运算。#includevoidinputmatrix(int(*a)[4],int,int);voidoutputmatrix(int(*b)[4],int,int);voidreverse(int(*a)[4],int(*b)[3]);intmain(void){inta[3][4],b[4][3];printf("Pleaseinput3x4matrix:\n");inputmatrix(a,3,4);reverse(a,b);printf("Thereviermatrixis:\n");outputmatrix(b,4,3);getch();return0;}voidinputmatrix(int(*a)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{scanf("%d",*(a+i)+j);}}}voidoutputmatrix(int(*b)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{printf("%d",*(b+i)+j);}printf("\n");}}voidreverse(int(*a)[4],int(*b)[3]){inti,j;for(i=0;i<4;i++){for(j=0;j<3;j++)b[i][j]=a[j][i];}}15、采用一次性输入输出的方法进行字符串操作。#includeintmain(){charstr[20];scanf("%s",str);printf("%s",str);getch();return0;}16、编写一个函数,要求把一个字符串的内容复制到另一个字符串中。#includecopy(char*s,char*q);intmain(){char*str,strcp[20],*p;str="helloworld!";p=strcp;copy(str,p);printf("%s",strcp);getch();return0;}copy(char*s,char*q){inti=0;while(*(s+i)){*q=*(s+i);i++;q++;}*q='\0';}17、指向函数的指针演示。#includeintmain(){intmax(inta,intb);int(*pmax)();intx,y,z;pmax=max;printf("input2interger:\n");scanf("%d%d",&x,&y);z=(*pmax)(x,y);printf("max=%d",z);getch();return1;}intmax(inta,intb){if(a>b)returna;elsereturnb;} 18、返回指针的函数。(返回值为指针的函数演示)#includeintmain(){intmaxp(int*p,intn);inta[10],*max,i;printf("input10interger:\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}max=maxp(a,10);printf("Themaxnumis:%d",*max);getch();return1;}intmaxp(int*p,intn){inti,*max;max=p;for(i=0;i{if(*(p+i)>*max)max=p+i;}returnmax;} 19、对学生信息记录按照学号从小到大顺序排序。(结构体应用)对一般的数据类型数组,可以选用“冒泡排序”,也可以选择排序的算法。这些算法对于结构体数组同样适用。记住在结构体应用中定义后“;“必不可少啊。#include#defineMAX6structstu{intnum;charname[5];};intmain(void){inti,j;structstusort[MAX],min,t;printf("Pleaseinputsixstudentsrecords:\n");for(i=0;i{printf("number:");scanf("%d",&sort[i].num);printf("name:");scanf("%s",&sort[i].name);}for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
min=*p;
inti,number[10];
printf("Input10intergernumbers:
for(i=0;i<10;i++)
scanf("%d",&number[i]);
max_min_value(number,10);
printf("\nmax=%d,min=%d\n",max,min);
getch();
14.编写一个函数实现矩阵的转置运算。
voidinputmatrix(int(*a)[4],int,int);
voidoutputmatrix(int(*b)[4],int,int);
voidreverse(int(*a)[4],int(*b)[3]);
inta[3][4],b[4][3];
printf("Pleaseinput3x4matrix:
inputmatrix(a,3,4);
reverse(a,b);
printf("Thereviermatrixis:
outputmatrix(b,4,3);
voidinputmatrix(int(*a)[4],intn,intm)
for(i=0;i{for(j=0;j{scanf("%d",*(a+i)+j);}}}voidoutputmatrix(int(*b)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{printf("%d",*(b+i)+j);}printf("\n");}}voidreverse(int(*a)[4],int(*b)[3]){inti,j;for(i=0;i<4;i++){for(j=0;j<3;j++)b[i][j]=a[j][i];}}15、采用一次性输入输出的方法进行字符串操作。#includeintmain(){charstr[20];scanf("%s",str);printf("%s",str);getch();return0;}16、编写一个函数,要求把一个字符串的内容复制到另一个字符串中。#includecopy(char*s,char*q);intmain(){char*str,strcp[20],*p;str="helloworld!";p=strcp;copy(str,p);printf("%s",strcp);getch();return0;}copy(char*s,char*q){inti=0;while(*(s+i)){*q=*(s+i);i++;q++;}*q='\0';}17、指向函数的指针演示。#includeintmain(){intmax(inta,intb);int(*pmax)();intx,y,z;pmax=max;printf("input2interger:\n");scanf("%d%d",&x,&y);z=(*pmax)(x,y);printf("max=%d",z);getch();return1;}intmax(inta,intb){if(a>b)returna;elsereturnb;} 18、返回指针的函数。(返回值为指针的函数演示)#includeintmain(){intmaxp(int*p,intn);inta[10],*max,i;printf("input10interger:\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}max=maxp(a,10);printf("Themaxnumis:%d",*max);getch();return1;}intmaxp(int*p,intn){inti,*max;max=p;for(i=0;i{if(*(p+i)>*max)max=p+i;}returnmax;} 19、对学生信息记录按照学号从小到大顺序排序。(结构体应用)对一般的数据类型数组,可以选用“冒泡排序”,也可以选择排序的算法。这些算法对于结构体数组同样适用。记住在结构体应用中定义后“;“必不可少啊。#include#defineMAX6structstu{intnum;charname[5];};intmain(void){inti,j;structstusort[MAX],min,t;printf("Pleaseinputsixstudentsrecords:\n");for(i=0;i{printf("number:");scanf("%d",&sort[i].num);printf("name:");scanf("%s",&sort[i].name);}for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
for(j=0;j{scanf("%d",*(a+i)+j);}}}voidoutputmatrix(int(*b)[4],intn,intm){inti,j;for(i=0;i{for(j=0;j{printf("%d",*(b+i)+j);}printf("\n");}}voidreverse(int(*a)[4],int(*b)[3]){inti,j;for(i=0;i<4;i++){for(j=0;j<3;j++)b[i][j]=a[j][i];}}15、采用一次性输入输出的方法进行字符串操作。#includeintmain(){charstr[20];scanf("%s",str);printf("%s",str);getch();return0;}16、编写一个函数,要求把一个字符串的内容复制到另一个字符串中。#includecopy(char*s,char*q);intmain(){char*str,strcp[20],*p;str="helloworld!";p=strcp;copy(str,p);printf("%s",strcp);getch();return0;}copy(char*s,char*q){inti=0;while(*(s+i)){*q=*(s+i);i++;q++;}*q='\0';}17、指向函数的指针演示。#includeintmain(){intmax(inta,intb);int(*pmax)();intx,y,z;pmax=max;printf("input2interger:\n");scanf("%d%d",&x,&y);z=(*pmax)(x,y);printf("max=%d",z);getch();return1;}intmax(inta,intb){if(a>b)returna;elsereturnb;} 18、返回指针的函数。(返回值为指针的函数演示)#includeintmain(){intmaxp(int*p,intn);inta[10],*max,i;printf("input10interger:\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}max=maxp(a,10);printf("Themaxnumis:%d",*max);getch();return1;}intmaxp(int*p,intn){inti,*max;max=p;for(i=0;i{if(*(p+i)>*max)max=p+i;}returnmax;} 19、对学生信息记录按照学号从小到大顺序排序。(结构体应用)对一般的数据类型数组,可以选用“冒泡排序”,也可以选择排序的算法。这些算法对于结构体数组同样适用。记住在结构体应用中定义后“;“必不可少啊。#include#defineMAX6structstu{intnum;charname[5];};intmain(void){inti,j;structstusort[MAX],min,t;printf("Pleaseinputsixstudentsrecords:\n");for(i=0;i{printf("number:");scanf("%d",&sort[i].num);printf("name:");scanf("%s",&sort[i].name);}for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
scanf("%d",*(a+i)+j);
voidoutputmatrix(int(*b)[4],intn,intm)
for(i=0;i{for(j=0;j{printf("%d",*(b+i)+j);}printf("\n");}}voidreverse(int(*a)[4],int(*b)[3]){inti,j;for(i=0;i<4;i++){for(j=0;j<3;j++)b[i][j]=a[j][i];}}15、采用一次性输入输出的方法进行字符串操作。#includeintmain(){charstr[20];scanf("%s",str);printf("%s",str);getch();return0;}16、编写一个函数,要求把一个字符串的内容复制到另一个字符串中。#includecopy(char*s,char*q);intmain(){char*str,strcp[20],*p;str="helloworld!";p=strcp;copy(str,p);printf("%s",strcp);getch();return0;}copy(char*s,char*q){inti=0;while(*(s+i)){*q=*(s+i);i++;q++;}*q='\0';}17、指向函数的指针演示。#includeintmain(){intmax(inta,intb);int(*pmax)();intx,y,z;pmax=max;printf("input2interger:\n");scanf("%d%d",&x,&y);z=(*pmax)(x,y);printf("max=%d",z);getch();return1;}intmax(inta,intb){if(a>b)returna;elsereturnb;} 18、返回指针的函数。(返回值为指针的函数演示)#includeintmain(){intmaxp(int*p,intn);inta[10],*max,i;printf("input10interger:\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}max=maxp(a,10);printf("Themaxnumis:%d",*max);getch();return1;}intmaxp(int*p,intn){inti,*max;max=p;for(i=0;i{if(*(p+i)>*max)max=p+i;}returnmax;} 19、对学生信息记录按照学号从小到大顺序排序。(结构体应用)对一般的数据类型数组,可以选用“冒泡排序”,也可以选择排序的算法。这些算法对于结构体数组同样适用。记住在结构体应用中定义后“;“必不可少啊。#include#defineMAX6structstu{intnum;charname[5];};intmain(void){inti,j;structstusort[MAX],min,t;printf("Pleaseinputsixstudentsrecords:\n");for(i=0;i{printf("number:");scanf("%d",&sort[i].num);printf("name:");scanf("%s",&sort[i].name);}for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
for(j=0;j{printf("%d",*(b+i)+j);}printf("\n");}}voidreverse(int(*a)[4],int(*b)[3]){inti,j;for(i=0;i<4;i++){for(j=0;j<3;j++)b[i][j]=a[j][i];}}15、采用一次性输入输出的方法进行字符串操作。#includeintmain(){charstr[20];scanf("%s",str);printf("%s",str);getch();return0;}16、编写一个函数,要求把一个字符串的内容复制到另一个字符串中。#includecopy(char*s,char*q);intmain(){char*str,strcp[20],*p;str="helloworld!";p=strcp;copy(str,p);printf("%s",strcp);getch();return0;}copy(char*s,char*q){inti=0;while(*(s+i)){*q=*(s+i);i++;q++;}*q='\0';}17、指向函数的指针演示。#includeintmain(){intmax(inta,intb);int(*pmax)();intx,y,z;pmax=max;printf("input2interger:\n");scanf("%d%d",&x,&y);z=(*pmax)(x,y);printf("max=%d",z);getch();return1;}intmax(inta,intb){if(a>b)returna;elsereturnb;} 18、返回指针的函数。(返回值为指针的函数演示)#includeintmain(){intmaxp(int*p,intn);inta[10],*max,i;printf("input10interger:\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}max=maxp(a,10);printf("Themaxnumis:%d",*max);getch();return1;}intmaxp(int*p,intn){inti,*max;max=p;for(i=0;i{if(*(p+i)>*max)max=p+i;}returnmax;} 19、对学生信息记录按照学号从小到大顺序排序。(结构体应用)对一般的数据类型数组,可以选用“冒泡排序”,也可以选择排序的算法。这些算法对于结构体数组同样适用。记住在结构体应用中定义后“;“必不可少啊。#include#defineMAX6structstu{intnum;charname[5];};intmain(void){inti,j;structstusort[MAX],min,t;printf("Pleaseinputsixstudentsrecords:\n");for(i=0;i{printf("number:");scanf("%d",&sort[i].num);printf("name:");scanf("%s",&sort[i].name);}for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
printf("%d",*(b+i)+j);
voidreverse(int(*a)[4],int(*b)[3])
15、采用一次性输入输出的方法进行字符串操作。
intmain()
charstr[20];
scanf("%s",str);
printf("%s",str);
16、编写一个函数,要求把一个字符串的内容复制到另一个字符串中。
copy(char*s,char*q);
char*str,strcp[20],*p;
str="helloworld!
";
p=strcp;
copy(str,p);
printf("%s",strcp);
copy(char*s,char*q)
inti=0;
while(*(s+i))
*q=*(s+i);
i++;
q++;
*q='\0';
17、指向函数的指针演示。
intmax(inta,intb);
int(*pmax)();
pmax=max;
printf("input2interger:
scanf("%d%d",&x,&y);
z=(*pmax)(x,y);
printf("max=%d",z);
intmax(inta,intb)
if(a>b)
returna;
returnb;
18、返回指针的函数。
(返回值为指针的函数演示)
intmaxp(int*p,intn);
inta[10],*max,i;
printf("input10interger:
scanf("%d",&a[i]);
max=maxp(a,10);
printf("Themaxnumis:
%d",*max);
intmaxp(int*p,intn)
inti,*max;
max=p;
for(i=0;i{if(*(p+i)>*max)max=p+i;}returnmax;} 19、对学生信息记录按照学号从小到大顺序排序。(结构体应用)对一般的数据类型数组,可以选用“冒泡排序”,也可以选择排序的算法。这些算法对于结构体数组同样适用。记住在结构体应用中定义后“;“必不可少啊。#include#defineMAX6structstu{intnum;charname[5];};intmain(void){inti,j;structstusort[MAX],min,t;printf("Pleaseinputsixstudentsrecords:\n");for(i=0;i{printf("number:");scanf("%d",&sort[i].num);printf("name:");scanf("%s",&sort[i].name);}for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
if(*(p+i)>*max)
max=p+i;
returnmax;
19、对学生信息记录按照学号从小到大顺序排序。
(结构体应用)
对一般的数据类型数组,可以选用“冒泡排序”,也可以选择排序的算法。
这些算法对于结构体数组同样适用。
记住在结构体应用中定义后“;“必不可少啊。
#defineMAX6
structstu
intnum;
charname[5];
};
structstusort[MAX],min,t;
printf("Pleaseinputsixstudentsrecords:
for(i=0;i{printf("number:");scanf("%d",&sort[i].num);printf("name:");scanf("%s",&sort[i].name);}for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
printf("number:
");
scanf("%d",&sort[i].num);
printf("name:
scanf("%s",&sort[i].name);
for(i=0;i{min=sort[i];for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
for(j=i+1;jif(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
if(sort[j].num{t=min;min=sort[j];sort[j]=t;}sort[i]=min;}printf("Theresultofsortis:\n");for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
t=min;min=sort[j];sort[j]=t;
sort[i]=min;
for(i=0;iprintf("%d,%s\n",sort[i].num,sort[i].name);getch();return0;} 20、顺序表的应用。(插入,删除,初始化顺序表)#include#include"conio.h"#definemaxsize10typedefintelemtype;typedefstruct{int*elem;intlength;intlistsize;}Sqlist;voidiniSqlist(Sqlist*L){L->elem=(int*)malloc(maxsize*sizeof(elemtype));if(!L->elem)exit(0);L->length=0;L->listsize=maxsize;}voidinsertelem(Sqlist*L,inti,elemtypeitem){elemtype*base,*insertptr,*p;if(i<1||i>L->length+1)exit(0);if(L->length>=L->listsize){base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));L->elem=base;L->listsize=L->listsize+100;}insertptr=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
printf("%d,%s\n",sort[i].num,sort[i].name);
20、顺序表的应用。
(插入,删除,初始化顺序表)
#include"conio.h"
#definemaxsize10
typedefintelemtype;
typedefstruct
int*elem;
intlength;
intlistsize;
}Sqlist;
voidiniSqlist(Sqlist*L)
L->elem=(int*)malloc(maxsize*sizeof(elemtype));
if(!
L->elem)
exit(0);
L->length=0;
L->listsize=maxsize;
voidinsertelem(Sqlist*L,inti,elemtypeitem)
elemtype*base,*insertptr,*p;
if(i<1||i>L->length+1)
if(L->length>=L->listsize)
base=(elemtype*)realloc(L->elem,(L->listsize+10)*sizeof(elemtype));
L->elem=base;
L->listsize=L->listsize+100;
insertptr=&(L->elem[i-1]);
for(p=&(L->elem[L->length-1]);p*(p+1)=*p;*insertptr=item;L->length++;}voiddelelem(Sqlist*L,inti){elemtype*delitem,*q;if(i<1||i>L->length)exit(0);delitem=&(L->elem[i-1]);q=L->elem+L->length-1;for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;L->length--;}intmain(void){Sqlistl;inti;iniSqlist(&l);for(i=0;i<15;i++){insertelem(&l,i+1,i+1);}printf("\nThecontentofthelistis\n");for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
*(p+1)=*p;
*insertptr=item;
L->length++;
voiddelelem(Sqlist*L,inti)
elemtype*delitem,*q;
if(i<1||i>L->length)
delitem=&(L->elem[i-1]);
q=L->elem+L->length-1;
for(++delitem;delitem<=q;++delitem)*(delitem-1)=*delitem;
L->length--;
Sqlistl;
inti;
iniSqlist(&l);
for(i=0;i<15;i++)
insertelem(&l,i+1,i+1);
printf("\nThecontentofthelistis\n");
for(i=0;iprintf("%d",l.elem[i]);delelem(&l,5);printf("\nDeletethefifthelement\n");for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
printf("%d",l.elem[i]);
delelem(&l,5);
printf("\nDeletethefifthelement\n");
for(i=0;iprintf("%d",l.elem[i]);getch();return0;} 21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。完整的实验程序:#include"stdafx.h"#include#include#include#includeusingnamespacestd;#defineN10voidselectsort(intb[],intn){inti,j,k,temp;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++)if(b[j]if(k!=i){temp=b[i];b[i]=b[k];b[k]=temp;}}}voidoutput(intb[],intn){inti;cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
21、将一个数插入到有序的数列中,要求插入后仍然保持数列的有序性。
完整的实验程序:
#include"stdafx.h"
usingnamespacestd;
#defineN10
voidselectsort(intb[],intn)
inti,j,k,temp;
for(i=0;i<=n-2;i++)
k=i;
for(j=i+1;j<=n-1;j++)
if(b[j]
if(k!
=i)
temp=b[i];b[i]=b[k];b[k]=temp;
voidoutput(intb[],intn)
cout<for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
for(i=0;icout<cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
cout<
cout<}voidmain(){inti,x,n,a[N];cout<<"pleaseinputthenumberofintergers:"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
voidmain()
inti,x,n,a[N];
cout<<"pleaseinputthenumberofintergers:
"<cin>>n;cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
cin>>n;
cout<<"pleaseinput"<"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
"<for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
for(i=0;i{cin>>a[i];}selectsort(a,n);output(a,n);cout<<"pleaseinputthenumberwhichyouwanttosort:"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
cin>>a[i];
selectsort(a,n);
output(a,n);
cout<<"pleaseinputthenumberwhichyouwanttosort:
"<cin>>x;i=n-1;while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
cin>>x;
i=n-1;
while((i>=0)&&(x{a[i+1]=a[i];i--;}a[i+1]=x;output(a,n+1);}实验结果如下:22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。编写程序,求第一天共摘了多少个桃子?分析:设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。由此可得:第9天得桃子数是第10天得桃子数加1后的2倍。第8天得桃子数是第9天得桃子数加1后的2倍。.....
a[i+1]=a[i];
i--;
a[i+1]=x;
output(a,n+1);
实验结果如下:
22、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上,将剩下的桃子吃掉了一半又多吃了一个;以后每天早上都吃了前一天的剩下的一半零一个;到第10天早上就只剩下一个桃子了。
编写程序,求第一天共摘了多少个桃子?
设第一天的桃子数为x1,第二天的桃子树为x2.即前一天的桃子树是后一天桃子树加1后的2倍。
由此可得:
第9天得桃子数是第10天得桃子数加1后的2倍。
第8天得桃子数是第9天得桃子数加1后的2倍。
.....
下载文档到电脑,查找使用更方便
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
copyright@ 2008-2022 冰点文档网站版权所有
经营许可证编号:鄂ICP备2022015515号-1