前四章已提交且较简单,略过
第五章
//第一题
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
void mystrrev(char str[])
{
int len;
len = strlen(str);
for(int i=len-1; i>=0; i--)
cout<<str[i];
}
int main()
{
char str[100];
cin.getline(str,100);
mystrrev(str);
return 0;
}
//第二题
#include <iostream>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
using namespace std;
int imax(int array[], int count)
{
int max = array[0];
for(int i=1;i<count;i++)
{
if(array[i]>max)
max = array[i];
}
return max;
}
int imin(int array[], int count)
{
int min = array[0];
for(int i=1;i<count;i++)
{
if(array[i]<min)
min = array[i];
}
return min;
}
int main()
{
int n;
cin>>n;
int num[100];
for(int i=0;i<n;i++)
cin>>num[i];
cout<<imax(num,n)<<"\n"<<imin(num,n);
return 0;
}
//第三题
#include<iostream>
#include <cmath>
#include <algorithm>
#include <string>
#include <cstring>
using namespace std;
int isprime(int a)
{
int n;
if(a==1||a==0)
return 0;
for(int i=2;i<a;i++)
{
if(a%i!=0)
continue;
else
return 0;
}
return 1;
}
int main()
{
int n, i=0;
int num[100]={0};
while(cin)
{
cin>>n;
if(n!=0&&isprime(n)==1)
{
num[i] = n;
i++;
}
else if(n!=0&&isprime(n)==0)
continue;
else
break;
}
for(int j=0;j<i;j++)
{
if(j!=i-1)
cout<<num[j]<<" ";
else
cout<<num[j];
}
return 0;
}
//第四题
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int main()
{
char str[200];
cin.getline(str,199);
int len=strlen(str);
for(int i=0;i<len;i++)
{
if(str[i]>='a'&&str[i]<='z')
{
str[i] -= 32;
cout<<str[i];
}
else if(str[i] == ' ')
cout<<str[i];
else if(str[i]>='A'&&str[i]<='Z')
cout<<str[i];
else
continue;
}
return 0;
}
//第五题
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
char str[500];
cin.getline(str,500);
int num=0;
int len = strlen(str);
for(int i=0;i<len;i++)
{
if(str[i]==' '&&str[i+1]==' ')
continue;
else if(str[i]==' '||str[i]==','||str[i]=='.'||str[i]=='?')
num++;
}
cout<<num;
return 0;
}
第六章
这一章开始涉及递归,虽然代码量小,但对初学者很有难度,注意理解
//第一题
#include <iostream>
using namespace std;
int monkeyandPeak(int k, int n)
{
if(n==1)
return k;
else
return monkeyandPeak((k+1)*2,n-1);
}
int main()
{
int n;
cin>>n;
cout<<monkeyandPeak(1,n);
return 0;
}
//第二题
#include <iostream>
using namespace std;
inline void rectangle(int a, int b)
{
cout<<a*b<<" "<<(a+b)*2;
}
int main()
{
int a, b;
cin>>a>>b;
rectangle(a,b);
return 0;
}
//第三题
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
void print_spaced(char str[])
{
int len = strlen(str);
for(int i=0;i<len-1;i++)
{
cout<<str[i]<<" ";
}
cout<<str[len-1];
}
void print_spaced(string str)
{
int len = str.size();
for(int i=0;i<len-1;i++)
{
cout<<str[i]<<" ";
}
cout<<str[len-1];
}
int main()
{
char str1[100];
string str2;
cin>>str1>>str2;
print_spaced(str1);
cout<<endl;
print_spaced(str2);
return 0;
}
//第四题
#include <iostream>
using namespace std;
void print(int num[], int n)
{
for(int i=0;i<n;i++)
{
cout<<num[i];
if(i<n-1)
cout<<" ";
}
return;
}
void sort(int &a, int &b)
{
int temp;
if(a<b)
{
temp = a;
a = b;
b = temp;
}
}
void sort(int &a, int &b, int &c)
{
sort(a,b);
sort(a,c);
sort(b,c);
}
void sort(int &a, int &b, int &c, int &d)
{
sort(a, b, c);
sort(b, c, d);
sort(a, b);
}
//选择排序递归实现
void sort(int num[], int n)
{
int j=0,temp;
for(int i=0; i<n; i++)
{
if(num[i]<num[j])
j=i;
}
temp=num[n-1];
num[n-1]=num[j];
num[j]=temp;
if(n>1)
sort(num,n-1);
}
int main()
{
int a,b,c,d;
int data[100];
int k,n,i;
cin>>k;
switch(k)
{
case 1:
cin>>a>>b;
sort(a,b);
cout<<a<<" "<<b<<endl;
break;
case 2:
cin>>a>>b>>c;
sort(a,b,c);
cout<<a<<" "<<b<<" "<<c<<endl;
break;
case 3:
cin>>a>>b>>c>>d;
sort(a,b,c,d);
cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
break;
case 4:
cin>>n;
for(i=0;i<n;i++)
{
cin>>data[i];
}
sort(data,n);
print(data,n);
break;
}
return 0;
}
//第五题
#include <iostream>
#include <cstring>
using namespace std;
void string_reverse(char str[], int len)
{
static int left = 0;
static int right = len-1;
char temp;
if(len==0||len==1)
return;
else
temp = str[left];
str[left] = str[right];
str[right] = temp;
left++;
right--;
return string_reverse(str,len-2);
}
int main()
{
char str[100];
cin.getline(str,100);
int len = strlen(str);
string_reverse(str,len);
cout<<str;
return 0;
}
第七章
//第一题
#include <iostream>
void reset(int *a, int *b)
{
int ave;
ave = int((*a+*b)/2.0+0.5);
*a = *b = ave;
}
int main()
{
int a, b;
std::cin>>a>>b;
reset(&a,&b);
std::cout<<a<<" "<<b;