📄 练习.txt
字号:
9.1
-----original codes-----
#include <iostream.h>
const size=10;
void findmax(int* a,int n,int i,int* pk);
void main()
{
int a[size];
int n=0;
cout<<"please input "<<size<<" datas:"<<endl;
for(int i=0;i<size;i++)
cin>>a[i];
findmax(a,size,0,&n);
cout<<"The maximum is "<<a[n]<<endl
<<"It's index is "<<n<<endl;
}
void findmax(int* a,int n,int i,int* pk)
{
if(i<n)
{
if(a[i]>a[*pk])
*pk=i;
findmax(a,n,i+1,pk);
}
}
-----answer version-----
#include <iostream.h>
const size=10;
void findmax(int* a,int n,int i,int& pk);
void main()
{
int a[size];
int n=0;
cout<<"please input "<<size<<" datas:"<<endl;
for(int i=0;i<size;i++)
cin>>a[i];
findmax(a,size,0,n);
cout<<"The maximum is "<<a[n]<<endl
<<"It's index is "<<n<<endl;
}
void findmax(int* a,int n,int i,int& pk)
{
for(;i<n;i++)
{
if(a[i]>a[pk])
pk=i;
}
}
9.2
#include <iostream.h>
#include <stdlib.h>
int& put(int n);
int get(int n);
int val[10];
int error=-1;
void main()
{
put(0)=10;
put(1)=20;
put(9)=30;
cout<<get(0)<<endl
<<get(1)<<endl
<<get(9)<<endl;
put(12)=1;
}
int& put(int n)
{
if(n>9||n<0)
{
error=1;
cout<<"range error in put value!"<<endl;
exit(1);
}
error=0;
return val[n];
}
int get(int n)
{
if(n>9||n<0)
{
error=1;
cout<<"range error in get value!"<<endl;
exit(1);
}
error=0;
return val[n];
}
9.3
#include <iostream.h>
#include <iomanip.h>
void swap(char* (&a),char* (&b));
char* ap="hello";
char* bp="how are you?";
void main()
{
cout<<"original:"<<endl
<<"ap: "<<ap<<endl
<<"bp: "<<bp<<endl;
cout<<"&(*ap):"<<&(*ap)<<endl
<<"&(*bp):"<<&(*bp)<<endl;
swap(ap,bp);
cout<<"changed:"<<endl
<<"ap: "<<ap<<endl
<<"bp: "<<bp<<endl;
cout<<"&(*ap):"<<&(*ap)<<endl //很奇怪,这里显示的仍然是字符串,不是地址,
<<"&(*bp):"<<&(*bp)<<endl; //要显示地址的话,须在前面加(int)强制转换,
}
void swap(char* (&a),char* (&b))
{
char* tmp;
tmp=a;
a=b;
b=tmp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -