您的当前位置:首页正文

西南交通大学计算机程序设计基础(C++)

来源:九壹网
西南交通大学C++实验报告 计算机程序设计基础(C++)

实验1

一、实验目的

1.熟悉C++程序的集成开发环境;

2.学习新建和打开控制台应用程序的方法; 3.掌握简单数据运算,以及输入与输出方法。 二、实验任务

1.输入一摄氏温度,输出显示所转换的华氏温度。 (提示:摄氏温度=(华氏温度-32)×5/9) 2.画出一头威武雄壮的雄狮。 ,%%%%%% ,%%/\\%%%%/\\% ,%%%\\c \"\" J/%%% %. %%%%/ o o \\%%% `%%. %%%% _ |%% `%% `%%%%(__Y__)% |

\\\\ / \\ | | \\\\/ ) | |

\\ /_ | |__ (___________)))))))

三、实验结果(源程序 + 注释) 1. 源程序

#include using namespace std; void main() {

double a,b;

cout<<\"请输入一摄氏温度:\"<cin>>a; b=a*9/5+32;

cout<<\"转换的华氏温度为:\"<} 2. 源程序

#include

using namespace std; void main() {

cout<<\" ,%%%%%% \"<cout<<\" ,%%/\\%%%%/\\% \"<cout<<\" \\\\ / \\ | | \"<实验2

一、实验目的

1.掌握对一般数据的输入和输出格式控制方法;

2.掌握对实型数据输出形式的设置和小数位数的控制方法; 3.了解数据输入的相关注意事项。 二、实验任务

1. 键盘输入某台计算机的编号和该计算机的价格,并输出这些信息。 要求:编号为11位数字构成,如;价格含有小数部分,如元;输出的编号只是由数字组成,不应该出现小数点等非数字符号。

2. 有一种加密方法是用原来字母的第n个字母代替原来的宁母。例如把A

用其后第4个字母E来替代。现在有一密文内容为wigvix,编程求出它的原文是什么(提示:可根据上述加密原理,使用若干字符型变量来实现)。

3. 编程实现:在计算机的提示下输入某学生的学号、英语成绩、高等数学成绩、线性代数成绩,计算得出三门课程平均成绩,并按如下格式输出显示。

成绩单 学 号

**************************************** 科 目 成 绩

-----------------------------------------------------------------

英 语 85 高等数学 90 线性代数

**************************************** 平均成绩

三、实验结果(源程序 + 注释) 1. 源程序

#include using namespace std; void main() { double a,b;

cout<<\"请输入某台计算机的编号和该计算机的价格:\"<#include using namespace std;

cin>>a>>b; (11);

cout<<\"该计算机的编号和价格分别为:\"<void main()

{ char c1,c2,c3,c4,c5,c6; cout<<\"请输入密码内容:\"<#include #include using namespace std; void main()

cin>>c1>>c2>>c3>>c4>>c5>>c6; c1=c1-4; c2=c2-4; c3=c3-4; c4=c4-4; c5=c5-4; c6=c6-4;

cout<<\"原文是:\"<cout<{ float score1,score2,score3,average; cout<<\"请输入三门课程的成绩\"<cin>>score1>>score2>>score3; average=(score1+score2+score3)/3; cout<<\"成绩单\"<cout<<\"****************************************\"<cout<<\"----------------------------------------\"<cout<<\"****************************************\"<cout<<\"平均成绩\"<实验3

一、实验目的

1. 掌握“处理某一或某些操作只有在特定条件成立的情况下才会被执行”的编程思路和方法;

2. 掌握简单分支程序设计,以及if和if-else语句的使用方法。 二、实验任务

x(x1)1. 已知一函数y2x1(1x10),输入x的值,求解并输出相应的y值。

3x11(x10)2. 求一元二次方程ax2+bx+c=0的根,其中a、b、c为实数,由键盘输入。 三、实验结果(源程序 + 注释) 1. 源程序

#include using namespace std; void main() { double x,y;

cout<<\"请输入x的值:\"<cin>>x; if(x<1)

y=x;

if(x>=1&&x<10)

} 2.

y=2*x-1;

if(x>=10)

y=3*x-11;

cout<<\"输出相应的y值为:\"<源程序

#include #include using namespace std; void main()

{ double a,b,c,delta,x,x1,x2;

cout<<\"求一元二次方程ax2+bx+c=0的根\"<cout<<\"请输入a,b,c的值:\"<>a>>b>>c; delta=b*b-4*a*c; if(delta<0)

cout<<\"一元二次方程无实根\"<else

if(delta==0)

{ x=-b/(2*a);

cout<<\"一元二次方程ax2+bx+c=0的根为a:\"<<\"x1=x2=\"<0)

{ x1=(-b-sqrt(delta))/(2*a); x2=(-b+sqrt(delta))/(2*a);

cout<<\"一元二次方程ax2+bx+c=0的根为:\"<<\"x1=\"<\"<<\"x2=\"<实验4

一、实验目的

1.掌握多路分支结构的程序设计,以及switch语句的使用方法; 2.学习通过程序调试来跟踪程序运行过程,查看程序运行过程中各个变量的取值变化 情况。 二、实验任务

1.某公司进行产品销售,既零售也批发,零售的价格与批发的价格不同,购买产品数量的多与少其价格也不同。具体标准见下表:

批 发 商 零 售 商 数量(个) 50~200 200以上 单位价格(元/个) 10 8 数量(个) 1~20 20~40 40~50 单位价格(元/个) 18 15 12 要求编写一程序,输入客户购买产品的数量,输出客户类型(批发或零售客户)、产品单价及应付的总额。

2. 给学生写评语,需将学生的考试成绩由百分制转换为5级制,标准为: 等级 分数段 A 95. - 100分 B 85.-94.分 C 75.-84.分 D 60.-74.分 E 60.分以下

3. 输入年号y和月份m, 输出y年的m月有多少天。 三、实验结果(源程序 + 注释) 1. 源程序

#include using namespace std; void main()

{ int x,y;

cout<<\"请输入客户购买产品的数量:\"<cin>>x; y=x/10; switch(y)

{ case 0: case 1:

cout<<\"客户类型为零售商,产品单价为18元/个,应付的总额

为:\"<<18*x<case 2: case 3:

cout<<\"客户类型为零售商,产品单价为15元/个,应付的总额

为:\"<<15*x<case 4:

cout<<\"客户类型为零售商,产品单价为12元/个,应付的总额

为:\"<<12*x<}

if(50<=x&&x<200)

cout<<\"客户类型为批发商,产品单价为10元/个,应付的总额

为:\"<<10*x<if(x>=200)

cout<<\"客户类型为批发商,产品单价为8元/个,应付的总额

为:\"<<8*x<#include using namespace std; void main() { int a,b;

cout<<\"请输入一学生的考试成绩:\"<cin>>a; b=a/5; switch(b)

{ case 20: case 19:

cout<<\"该学生的考试成绩等级为A:\"<case 18: case 17:

cout<<\"该学生的考试成绩等级为B:\"<case 16:

case 15: } 3. 源程序

#include using namespace std; void main() { int y,m;

cout<<\"请输入输入年号y和月份m:\"<cin>>y>>m;

cout<<\"该学生的考试成绩等级为C:\"<case 14: case 13: case 12:

cout<<\"该学生的考试成绩等级为D:\"<default:

cout<<\"该学生的考试成绩等级为E:\"<}

switch(m)

{ case 1:

case 3: case 5: case 7: case 8:

case 10:

} if(m==2)

{ if((y%4==0&&y%100!=0)||(y%100==0&&y%400==0))

cout<cout<cout<else

cout<} }

实验5

一、实验目的

1.理解“处理某一或某些操作需要被有条件地重复执行”的编程思路和方

法;

2.掌握循环结构的程序设计,以及while、do-while和for循环语句的使

用方法。

二、实验任务

π1111.计算=1-+-+…直到最后一项小于10-6。

43572.编程实现阿基里德算法求解两个整数的最大公约数和最小公倍数。 ( 提示:设两个整数m、n(m>=n),用m除以n,求得余数q。 若q为零,n即为所求的最大公约数;

若q不为零,则更新除数和被除数(n→m,q →n)再做除法,直

至余数q为零止。这时,相应的n即为所求的最大公约数。

而最小大公倍数=原始m与n值的乘积/最大公约数。 ) 3. 编程实现十进制整数和二进制整数之间的转换。 三、实验结果(源程序 + 注释)

1. 源程序

#include using namespace std; void main() { int i=1;

double n=1,j=1,k=0,pi=0; } 2. 源程序

#include

do{k=k+j; n=n+2;

i=-i; j=i/n;

}while(j>=||j<=; pi=4*k;

cout<<\"π/4=\"<using namespace std; void main()

{ int m,n,q,i,j,k;

cout<<\"请输入两个整数:\"<cin>>m>>n; i=m; j=n; q=i%j; if(q==0)

cout<<\"所求的最大公约数为:\"<if(q!=0)

do{ i=j;

j=q;

q=i%j; }while(q!=0);

k=(m*n/j);

cout<<\"所求的最大公约数为:\"<cout<<\"所求的最小公倍数为:\"<3 源程序

#include using namespace std; void main()

{ int i=10,j=1,m,n=0;

cout<<\"请输入一个二进制整数:\"<>m;

do{n+=j*(m%i);

m/=i; j*=2;

}while(m!=0); }

cout <<\"转换为十进制整数是:\"<实验6

一、实验目的

1.掌握循环与选择结构的嵌套的使用方法; 2.掌握嵌套循环的使用方法;

二、实验任务

1. 设计一个程序,求出n-m之间(m>n)的所有素数,要求:每行输出5个。 2. 键盘输入一行字符,统计字符总个数,以及其中的英文字母个数,如果是数字,则统计它们所构成的数据中,奇数个数和偶数个数分别是多少。 提示:可使用以下程序段,连续输入若干字符直到输入'\\n'时停止。 while(1) { ch=getchar(); if(ch=='\\n')break;

。。。。。。 }

3. 两个乒乓球队进行比赛,各出3人。甲队为A、B、C共3人,乙队为X、Y、Z共3人,并以抽签方式决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比,请给出3对赛手的名单。 4. 用循环结构语句编程并输出下图,其行数有键盘给出。

例如:键盘输入:5,则运行结果如下

1 22 333 4444 5 4444 333

22 1

三、实验结果(源程序 + 注释) 1. 源程序

#include #include using namespace std; void main()

{ int m,n,x,y,k=0;

cout<<\"请输入两个不等的整数:\"<cin>>n>>m;

cout<<\"它们之间的所有素数为:\"<for(x=n;x<=m;x++)

{for(y=2;y<=x-1;y++) if(x%y==0)break;

if(x==y)

{cout<<\" \"<k=k+1;

} 2.

if(k%5==0)

cout<<\"\\n\";}

}

源程序

#include using namespace std; #include <> void main() {

char ch;

int i=0,ch_num=0,odd_num=0,even_num=0;

cout<<\"请输入一行字符:\"<while(1) {

ch=getchar(); if(ch=='\\n')break; else

{ i=i+1;

if(ch>='a'&&ch<='z'|| ch>='A'&&ch<='Z')

ch_num+=1;

else

if(ch>='1'&&ch<='9')

if(ch%2==0) even_num+=1; else odd_num+=1;

}

}

cout<<\"输入的字符总个数为:\"<源程序 #include using namespace std;

void main() { char i,j,k;

for(i='X';i<='Z';i++)

for(j='X';j<='Z';j++)

if(i!=j)

for(k='X';k<='Z';k++)

if(i!=k&&j!=k)

if(i!='X'&&k!='X'&&k!='Z')

cout<<\"3对选手的名单为:\"<<\"A--\"<\"<<\"C--\"<#include #include using namespace std; void main() { int i,j,a;

cout<<\"请任意输入一个整数:\"; cin>>a;

for(i=1;i<=a;i++)

{for(j=1;j<=2*a-1;j++)

if(j<=2*a-1-i)

if(i!=a)

cout<<\" \";

else

cout<else

cout<cout<{for(j=1;j<=a-1;j++)

if(j<=a-i) cout<cout<<\" \";

cout<实验7

一、实验目的

1.掌握数值型一维数组的使用方法;

2.掌握对一组同类型的数据进行插入、删除、排序和查找等的常用算法。 二、实验任务

1. 对两个无序的数组(其中数组a长度为n,数组b长度m),采用选择法(或起泡法)分别将这两个数组转为有序(元素值从小到大有序)。要求:a和b数组长度及其元素均由键盘获取。

2. 将以上任务1构建的两个有序的数组a和b,进行有序合并,即将这两个数组进行合并的过程中其数据始终保持有序。

(提示:数据结构:三个一维数组a,b,c

将a[ia]和b[ib]比较,谁小就把谁放入c[ic](c数组用于存放

合并后的数据),

谁放入了c[ic]中谁的下标就加1,同时ic(c中当前存放数据的下标)加1,如下图所示。 )

3. 计算以上任务2中c数组元素的平均值,并删除c中所有低于平均值的那些元素。

三、实验结果(源程序 + 注释) 1. 源程序

#include using namespace std; void main(void)

{ int i,j,t,n,m,a[100],b[100]; cout<<\"请输入数组a中数字的个数:\";

cin>>n;

cout<<\"请输入数组a的\"<cin>>a[i];

for(i=0;ifor(j=i+1;jif(a[i]>a[j])

{t=a[i];a[i]=a[j];a[j]=t;}

cout<<\"数组从小到大排列为:\"<cout<} 2.

cout<cout<<\"请输入数组b中数字的个数:\"; cin>>m;

cout<<\"请输入数组b的\"<cin>>b[i];

for(i=0;ifor(j=i+1;jif(b[i]>b[j])

{t=b[i];b[i]=b[j];b[j]=t;}

cout<<\"数组b从小到大排列为:\"<cout<cout<源程序

#include using namespace std;

void main(void)

{ int i,j,t,n,m,a[100],b[100]; cout<<\"请输入数组a中元素的个数:\";

cin>>n;

cout<<\"请输入数组a的\"<cin>>a[i];

for(i=0;ifor(j=i+1;jif(a[i]>a[j])

{t=a[i];a[i]=a[j];a[j]=t;}

cout<<\"数组a的元素从小到大排列为:\"<cout<cout<cout<<\"请输入数组b中元素的个数:\"; cin>>m;

cout<<\"请输入数组b的\"<cin>>b[i];

for(i=0;ifor(j=i+1;jif(b[i]>b[j])

{t=b[i];b[i]=b[j];b[j]=t;}

cout<<\"数组b的元素从小到大排列为:\"<cout<cout<{int c[200],ia=0,ib=0,ic=0;

for(ia=0;iaif(b[ib]>a[ia])

c[ic++]=a[ia];

else

{c[ic++]=b[ib];

if(a[ia]!=b[ib])

ia--;

ib++;}

if(ib} 3.

for(;ibc[ic++]=b[ib];

cout<<\"合并后的数组c为:\"<cout<<\" \"<cout<源程序

#include using namespace std; void main(void)

{ int i,j,t,n,m,a[100],b[100]; cout<<\"请输入数组a中元素的个数:\";

cin>>n;

cout<<\"请输入数组a的\"<cin>>a[i];

for(i=0;ifor(j=i+1;jif(a[i]>a[j])

{t=a[i];a[i]=a[j];a[j]=t;}

cout<<\"数组a的元素从小到大排列为:\"<cout<cout<cout<<\"请输入数组b中元素的个数:\"; cin>>m;

cout<<\"请输入数组b的\"<cin>>b[i];

for(i=0;ifor(j=i+1;jif(b[i]>b[j])

{t=b[i];b[i]=b[j];b[j]=t;}

cout<<\"数组b的元素从小到大排列为:\"<cout<cout<int c[200],ia=0,ib=0,ic=0;

{for(ia=0;iaif(b[ib]>a[ia])

c[ic++]=a[ia];

else

{c[ic++]=b[ib];

if(a[ia]!=b[ib])

ia--;

ib++;}

if(ibfor(;ibc[ic++]=b[ib];

cout<<\"合并后的数组c为:\"<cout<<\" \"<cout<for(i=0;isum=sum+c[i];

ave=sum/(n+m);

cout<<\"数组c元素的平均值为:\"<cout<<\"数组c中大于平均值的元素为:\";

for(i=0;iif(c[i]>ave)

cout<实验8

一、实验目的

1.掌握对一组同类型的数据进行插入、删除、排序和查找等的常用算法。 二、实验任务

1. 使用插入排序法将键盘输入的无序数列按升序排列。 思路分析与算法: 1) 2) 3) 4) 5)

从第一个元素开始,该元素可以认为已经被排序。

取出下一个元素,在已经排序的元素序列中从后向前扫描。 如果该元素(已排序)大于新元素,将该元素移到下一位置。 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置。 将新元素插入到该位置中。

6) 重复步骤2。

2.选举猴王问题:N 只猴子围成一圈,顺序编号1至N。从编号为1的猴子开始依次报数,报数m 的猴子就退出圈子,接着再报,报数m 的猴子再退出圈子,依次继续下去,圈子最后所剩的一只猴子为猴王,它原先的编号是几

思路分析与算法: 1)

使用一维数组存放猴子从1到n的编号,定义参加选举猴王的最多猴子数为40。 2)

i为每次循环时计数变量,k为按1,2,3,…m报数时的计数变量,t表示退出的猴子数。依次将退出的猴子对应的数组元素置0,直到只剩下一只猴子。 3)

三、实验结果(源程序 + 注释) 1. 源程序

#include #include using namespace std; void main()

{ const int N=100; int a[N],t,i,j,n;

cout<<\"请输入数据的个数:\";

找出数组中不为0的a[i],输出该数。

cin>>n;

cout<<\"请输入有\"<cin>>a[i];

if(a[0]>a[1])

{ t=a[0];a[0]=a[1];a[1]=t;} for(i=2;iwhile(a[i]>a[j]&&j<=n) }

cout<<\"原数列按升序排列为:\"<j++;

if(jfor(int k=i;k>=j;k--)

a[k]=a[k-1];

a[j]=t; }

} 2

cout<cout<源程序

#include using namespace std; void main()

{ const int N=40; int n, m, a[N];

int i,j,k;

cout<<\"请输入参加选举的猴子总数:\"; cin>>n;

cout<<\"请输入报数数目:\"; cin>>m;

for(i=0;ia[i]=i+1;

i=0; j=0;

}

k=0;

while(kif(j==m){a[i]=0;j=0;k++;} } i=0;

while(a[i]==0) i++;

cout<<\"猴王原先的编号是\"<i++;

if(i==n) i=0;

实验9

一、实验目的

1.掌握二维数值型数组的使用方法; 2. 掌握string类字符串的使用方法。 二、实验任务

1.自动产生N*N数据(N取值最大不超过100)存入a数组,数据形成规律如下图示(呈S形),并取出a的下三角形区域数据输出,输出形式如

下图所示(呈等腰三角形)。

2. 从键盘上输入任意两个字符串,比较它们是否相同,将它们连接成一个新

的字符串并输出,输出这个新的字符串的有效长度。

三、实验结果(源程序 + 注释) 1. 源程序

#include #include using namespace std; void main()

{ int a[10][10],i,j,n,k=0; cout<<\"请输入一个数字n:\"; cin>>n;

a[0][0]=1; for(i=0;ifor(j=0;j{a[i+1][0]=a[i][0]+2*n-1; a[i][j+1]=a[i][j]+1;} if(i%2!=0)

{a[i+1][0]=a[i][0]+1;

a[i][j+1]=a[i][j]-1;}}

for(i=0;ifor(j=0;j{cout<k++; if(k%n==0)

cout<for(i=0;i{cout<cout<cout<#include #include using namespace std; void main()

{ string s1,s2,s;

cout<<\"请输入第一个字符串:\"<getline(cin,s1);

cout<<\"请输入第二个字符串:\"<cout<<\"这两个字符串相同\"<else

cout<<\"这两个字符串不同\"<s=s1+s2;

cout<<\"将它们连接成一个新的字符串为:\"<}

cout<<\"这个新的字符串的有效长度为:\"<<()<实验10

一、实验目的

1.熟练指针变量的使用,了解其编程技巧。 二、实验任务

1. 使用指针法在的一组数据中,找出其中最大值所在的位置并输出。 2. 使用指针法对一维数组a中的数据按降序排列。 三、实验结果(源程序 + 注释) 1. 源程序

#include using namespace std; void main()

{ int a[100],i=0,n,j,max,*p; cout<<\"请输入数据的个数:\";

cin>>n;

} 2.

cout<<\"请输入一组数据的个数为\"<cin>>a[i];

max=a[0];

for(i=0;ifor(j=i+1;jmax) }

{p=&a[i]; max=a[i];}

cout<<\"其中最大值所在的位置为:\"<源程序

#include using namespace std; void main()

{ int a[100],i,j,n,*p;

cout<<\"请输入一维数组a中的数据的个数:\";

}

cin>>n;

cout<<\"请输入数组a:\"<cin>>a[i];

for(i=0;ifor(p=&a[0];p<&a[n-1-i];p++)

if(*p<*(p+1)) { *p+=*(p+1); *(p+1)=*p-*(p+1); *p-=*(p+1);}

cout<<\"数组a中的数据按降序排列为a:\"<for(p=&a[i];icout<<*p<<\" \";

实验11

一、实验目的

1.了解存放常用的系统函数的头文件;

2.掌握常用系统函数的功能和使用方法; 3.掌握返回值的概念和运用。 二、实验任务

1. 编程实现:考察小学一年级学生20以内的加法题(共10题),并按百分制给出最后分数。

说明:程序的已知项为20以内的两个随机整数,输出项为两个整数的加法算式,并根据给出的结果判断正误,正确的得10分。最后输出学生的总分成绩。

2. 编写两个子函数,分别求两个整数的最大公约数和最小公倍数,并编写主函数调用这两个子函数,输出结果,两个整数由键盘输入。 三、实验结果(源程序 + 注释) 1. 源程序

#include #include #include using namespace std; void main()

{ int a,b,s,i,j=0,score;

cout<<\"请完成10道加法题:\"<for(i=1;i<=10;i++) {srand(time(NULL));

a=1+rand()%(20-1+1); b=1+rand()%(20-1+1);

cout<>s;

if(s==a+b) } 2. 源程序

#include using namespace std; void main() { int a,b,s,t; int max(int,int);

int min(int,int);

j++;}

score=10*j;

cout<<\"该学生的总分成绩为:\"<cout<<\"请输入两个整数:\"<>a>>b; s=max(a,b); t=min(a,b);

cout<<\"这两个整数的最大公约数为:\"<cout<<\"这两个整数的最小公倍数为:\"<int max(int a,int b) { int q,n; q=a%b;

if(q==0)

n=b;

if(q!=0)

{do{a=b;

b=q;

q=a%b;

}while(q!=0); n=b;} return b;

}

int min(int a,int b) { int q,i,j,k,n; i=a; j=b; q=i%j; if(q==0)

n=j;

if(q!=0)

{do{i=j;

j=q;

q=i%j;

}while(q!=0);

n=j;} k=(a*b/j); return k;

}

12实验

一、实验目的

1.掌握自定义有返回值函数的概念、定义及使用;

2.掌握自定义void函数的概念、定义及使用;

3.掌握自定义有返回值函数与自定义void函数在定义及使用上的区别; 4.掌握函数参数间的数据传递。 二、实验任务

1. 设计一个程序,用来计算输入的两个整数的加、减、乘、除,每一个计算要单独用一个用户自定义的void函数来实现,接收输入数据也要用void函数来实现,输入数据中不包含0。

2. 自定义子函数功能:采用冒泡法对一组无序的数据按从小到大的顺序排序;主函数的功能:键盘输入n个整数,调用子函数完成对改组数据的有序化,然后输出处理结果。

3. 自定义子函数功能:实现计算n!;主函数的功能:键盘输入n和m(n>0,m>0,n>m),计算p=m!/(m-n)!,并输出p。 三、实验结果(源程序 + 注释) 1. 源程序

#include using namespace std; void x(int a,int b)

{ cout<<\"这两个整数的和为:\"<}

void y(int a,int b)

{ cout<<\"这两个整数的差为:\"<void u(int a,int b)

{ cout<<\"这两个整数的乘积为:\"<void v(double a,double b)

{ cout<<\"这两个整数的商为:\"<void main() { int a,b; }

cout<<\"请输入两个不为0的整数:\"<>a>>b; x(a,b); y(a,b); u(a,b); v(a,b);

2. 源程序

#include using namespace std; void F(int a[],int n,int*p); void main()

{ const int N=100;

int a[N],i,n;

cout<<\"请输入整数的个数n:\"; cin>>n;

cout<<\"请输入\"<for(i=0;ivoid F(int a[],int n,int*p) { int i,j; a[0]=*p;

cin>>a[i]; F(a,n,&a[0]); cout<for(i=1;ia[i]=*(p+i);

for(i=0;iif(a[j]>a[j+1])

{ a[j]=a[j]+a[j+1]; a[j+1]=a[j]-a[j+1]; a[j]-=a[j+1];}

cout<<\"数据按从小到大的顺序排序为:\"<for(i=0;i#include using namespace std; void main(void) { int m,n,p; int fact(int);

cout<}

cout<<\"请输入n和m的值(n>0,m>0,n>m):\"<>n>>m;

p=fact(m)/fact(m-n); cout<<\"p的值为:\"<int fact(int n) { int f;

if(n<0) cout<<\"n<0,数据错误!\"<else if(n==0) f=1; else f=fact(n-1)*n;

return(f); }

Top