您的位置:首页 > 编程语言 > C语言/C++

C++练习——2014/3/9

2014-03-09 22:22 288 查看
对应于二级书的第15-20题,前几题没有耐心看,所以大多都是抄的,关于指针还有很多很多的问题,但愿能够及时修补漏洞吧最近我会多进行实际操作的,对于理论题目,最近也要抓紧时间。

1.

#include <iostream.h>
void fun(int a[],int n,int b[],int m,int *c)
{
int i,j;
for(i=j=0;i<n&&j<m;)
*c++=a[i]<b[j]?a[i++]:b[j++];
while(i<n)
*c++=a[i++];
while(j<m)
*c++=b[j++];

}

void main()
{
int A[]={3,5,7,9,11,18,21};
int B[]={6,5,19,21,39};
int C[25],i;
for(i=0;i<25;i++)
C[i]=0;
cout<<endl;
cout<<"A[]=";
for(i=0;i<7;i++)
cout<<A[i]<<',';
cout<<endl;
cout<<"B[]=";
for(i=0;i<5;i++)
cout<<B[i]<<',';
cout<<endl;
fun(A,7,B,5,C);
cout<<"C[]=";
for(i=0;i<12;i++)
cout<<C[i]<<',';
cout<<endl;
return;
2.

#include<iostream.h>
int fun(int a[],int n)
{
if(n>0)
return a[n-1]+fun(a,n-1);
return 0;

}
void main()
{
int A[]={1,2,3,4};
cout<<fun(A,sizeof(A)/sizeof(int))<<endl;
return;
}


关于递归函数一遇到就犯错,这是个大问题;希望能通过多练习然后有所提高;

3.

#include<iostream.h>
#define MAXLINE 100
int fun(int a[],int *index)
{
int n=0,i;
do
{
cout<<"Please enter n\n";
cin>>n;
}while(n>99);

for(i=0;i<n;i++)
{
cout<<"please enter the a["<<i<<"]\n";
cin>>a[i];
}
*index=0;
for(int j=1;j<n;j++)
{
if(a[*index]<a[j] )
{
*index=j;
}
}
return a[*index];

}
void main()
{
int A[MAXLINE];
int index;
int maxdata;
maxdata=fun(A,&index);
cout<<"the max data is:"<<maxdata<<" "<<"the posion is:"<<index<<endl;
return;
}


4.

#include <iostream.h>
#define MAXLINE 1000
void fun(char *s1,char *s2)
{
int n=0;
for(n;s1
!=0;n++);//don't forget ';'
for(int i=0;s2[i]!=0;i++)
s1[n++]=s2[i];
s1
=0;

}

void main()
{
char s1[MAXLINE];
char s2[256];
cout<<"p;ease input a string:"<<endl;
cin.getline(s1,MAXLINE);
cout<<"please input other string:"<<endl;
cin.getline(s2,256);
fun(s1,s2);
cout<<s1<<endl;
return;
}

5.
#include <iostream>
void fun(char* s,char* s1,char* s2)
{
int i,j,k;
for(i=0;s1[i]!=0;i++)
for(j=0;s[j]!=0;j++)
if(s[j]==s1[i])
s[j]=s2[i];

}
void main()
{
char s[]="ABCABC";
fun(s,"AC","ZX");
std::cout<<s<<std::endl;
return;
}
6.
#include <iostream>
int fun(int *a,int n)
{
int k=0;
for(int i=1;i<n+1;i++)
{
if(a[k]!=a[i])
{
k++;
a[k]=a[i];

}

}
return k;

}
void main()
{
int A[]={6,6,5,4,4,3,3,2,1};
int j=fun(A,sizeof(A)/sizeof(int));
for(int i=0;i<j;i++)
{
std::cout<<A[i]<<' ';
}
std::cout<<std::endl;
return;
}

只有最后两个是完全独立自主写的;都是在vc6.0中测试通过了;唉,还要很大努力啊!所有程序都没有一次通过,都是经过很多调试,并不是说写程序非要一次性通过,但是我的错误一般都很简单,所以希望能够通过多练习得以避免从而节省时间,而且这些程序都很简单,我希望以后有机会写大程序的时候可以不用花心思去应对小错误了;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: