课后题一
#include<iostream>
using namespace std;
int main()
{
int a[20]={2,4,6,8,10,12,14,16,18,20};
int*p;
p=a;
for(int i=0;i<10;i++)
{
cout<<*p<<'\t';
p++;
}
cout<<endl;
return 0;
}
放法二
#include<iostream>
using namespace std;
int main()
{
int a[20]={2,4,6,8,10,12,14,16,18,20};
int*p;
p=&a[0];
for(int i=0;i<10;i++)
cout<<p[i]<<'\t';
cout<<endl;
return 0;
}
题二
#include<iostream>
using namespace std;
void lower(char a);
int main()
{
char b[20];
cout<<"请输入一个大写字符串:"<<endl;
cin.get(b,20);
cout<<"该大写字符串转换为小写格式后是:"<<endl;
for(int i=0;b[i]!='\0';i++)
lower(b[i]);
cout<<endl;
return 0;
}
void lower(char a)
{
if(a>='A'&&a<='Z')
a+=32;
cout<<a<<'\t';
}
方法二
#include<iostream>
using namespace std;
void lower();
char b[20];
int main()
{
cout<<"请输入一个大写字符串:"<<endl;
cin.get(b,20);
cout<<"该大写字符串转换为小写格式后是:"<<endl;
lower();
cout<<endl;
return 0;
}
void lower()
{
for(int i=0;b[i]!='\0';i++)
{
if(b[i]>='A'&&b[i]<='Z')
b[i]+=32;
cout<<b[i]<<'\t';
}
}
方法3
#include<iostream>
using namespace std;
void lower(char*a);
int main()
{
char b[20];
char*p;
p=b;
cout<<"请输入一个大写字符串:"<<endl;
cin.get(b,20);
cout<<"该大写字符串转换为小写格式后是:"<<endl;
lower(p);
cout<<endl;
return 0;
}
void lower(char*a)
{
for(int i=0;*a!='\0';i++)
{
if(*a>='A'&&*a<='Z')
*a+=32;
cout<<*a<<'\t';
a++;
}
}
方法四
#include<iostream>
using namespace std;
void lower(char&a);
int main()
{
char b[20];
cout<<"请输入一个大写字符串:"<<endl;
cin.get(b,20);
cout<<"该大写字符串转换为小写格式后是:"<<endl;
for(int i=0;b[i]!='\0';i++)
{
lower(b[i]);
cout<<b[i];
}
cout<<endl;
return 0;
}
void lower(char&a)
{
if(a>='A'&&a<='Z')
a+=32;
}
方法五
#include<iostream>
using namespace std;
char lower(char a);
int main()
{
char b[20];
cout<<"请输入一个大写字符串:"<<endl;
cin.get(b,20);
cout<<"该大写字符串转换为小写格式后是:"<<endl;
for(int i=0;b[i]!='\0';i++)
cout<<lower(b[i]);
cout<<endl;
return 0;
}
char lower(char a)
{
if(a>='A'&&a<='Z')
a+=32;
return a;
}
题三
#include<iostream>
using namespace std;
int main()
{
char a[20];
char*p;
cout<<"输入一个字符串:"<<endl;
cin.get(a,20);
cout<<"删除空格后的字符串为:"<<endl;
for(p=a;*p!='\0';p++)
if(*p!=' ')
cout<<*p;
cout<<endl;
return 0;
}
方法二
#include<iostream>
using namespace std;
int main()
{
char a[20];
cout<<"输入一个字符串:"<<endl;
cin.get(a,20);
cout<<"删除空格后的字符串为:"<<endl;
for(int i=0;a[i]!='\0';i++)
if(a[i]!=' ')
cout<<a[i];
cout<<endl;
return 0;
}
题四
#include<iostream>
using namespace std;
int main()
{
int q;
char*week[]={"January","february","March","April","May","June","July",
"August","September","October","November","December"};
while(1)
{
cout<<"输入一个整数"<<endl;
cin>>q;
if(q<1||q>12)
break;
cout<<"该整数对应的月份号是:"<<endl;
cout<<week[q]<<endl;
}
return 0;
}
题五
#include<iostream>
#include<iomanip>
using namespace std;
void max();
int a[3][4];
int**pp;
int*p[3];
int main()
{
p[0]=a[0];
p[1]=a[1];
p[2]=a[2];
pp=p;
cout<<"输入一个3X4矩阵的元素:"<<endl;
for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
cin>>a[i][j];
cout<<"该矩阵是:"<<endl;
for(int k=0;k<3;k++)
{
for(int j=0;j<4;j++)
cout<<setw(4)<<a[k][j]<<" ";
cout<<endl;
}
cout<<"该数组中最大的元素是:"<<endl;
max();
return 0;
}
void max()
{
int max;
max=**pp;
for(int j=0;j<3;j++)
{
for(int k=0;k<4;k++)
if(*(*pp+k)>=max)
max=*(*pp+k);
*pp++;
}
cout<<max<<endl;
}
方法二
题六
#include<iostream>
#include<iomanip>
using namespace std;
int*p[3];
int a[3][4];
int max();
int main()
{
p[0]=a[0];
p[1]=a[1];
p[2]=a[2];
cout<<"输入一个3X4矩阵的元素:"<<endl;
for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
cin>>a[i][j];
cout<<"该矩阵是:"<<endl;
for(int k=0;k<3;k++)
{
for(int j=0;j<4;j++)
cout<<setw(4)<<a[k][j];
cout<<endl;
}
cout<<"该数组中最大的元素是:"<<max()<<endl;
return 0;
}
int max()
{
int max;
max=*p[0];
for(int j=0;j<3;j++)
for(int k=0;k<4;k++)
if(*(p[j]+k)>=max)
max=*(p[j]+k);
return max;
}
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[2][3];
int*p[2];
p[0]=a[0];
p[1]=a[1];
cout<<"输入一个2X3二维整形数组元素:"<<endl;
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
cin>>*(p[i]+j);
cout<<"用指针数组输出2X3二维整形数组:"<<endl;
for(int k=0;k<2;k++)
{
for(int j=0;j<3;j++)
cout<<setw(4)<<*(p[k]+j);
cout<<endl;
}
return 0;
}
二
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[2][3];
int*p[2];
int**pp;
p[0]=a[0];
p[1]=a[1];
pp=p;
cout<<"输入一个2X3二维整形数组元素:"<<endl;
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
cin>>*(*(pp+i)+j);
cout<<"用指针数组输出2X3二维整形数组:"<<endl;
for(int k=0;k<2;k++)
{
for(int j=0;j<3;j++)
cout<<setw(4)<<*(*(pp+k)+j);
cout<<endl;
}
cout<<endl;
return 0;
}
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[2][3];
int*p[2];
int**pp;
p[0]=a[0];
p[1]=a[1];
pp=p;
cout<<"输入一个2X3二维整形数组元素:"<<endl;
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
cin>>*(*(pp+i)+j);
cout<<"用指针数组输出2X3二维整形数组:"<<endl;
for(int k=0;k<2;k++)
{
for(int j=0;j<3;j++)
cout<<setw(4)<<*(*(pp+k)+j);
cout<<endl;
}
cout<<endl;
return 0;
}
老师布置的题一
#include<iostream>
using namespace std;
int main()
{
int n;
int a[100];
int count=0;
a[0]=0;
cout<<"规则是有n个人围成一个圆圈,从第一个人开始报数,从1到3循环,凡是报3的退出圈子"<<endl;
cout<<"输入n的值:"<<endl;
cin>>n;
for(int i=0;i<n;i++)
a[i]+=1;
int j=1;
while(count<=n)
{
for(;j<=n;j++)
if(a[j-1]%3==0)
{
count+=3;
break;
}
}
cout<<"最后退出圈子的人是原来的"<<count-3<<"号"<<endl;
return 0;
}
方法二
#include<iostream>
using namespace std;
int main()
{
int n;
int a[100];
int*p;
int count=0;
a[0]=0;
cout<<"规则是有n个人围成一个圆圈,从第一个人开始报数,从1到3循环,凡是报3的退出圈子"<<endl;
cout<<"输入n的值:"<<endl;
cin>>n;
for(int i=0;i<n;i++)
a[i]+=1;
while(count<=n)
{
for(p=a;p-a<n;p++)
if(*p%3==0)
{
count+=3;
break;
}
}
cout<<"最后退出圈子的人是原来的"<<count-3<<"号"<<endl;
return 0;
}
题二
#include<iostream>
using namespace std;
int a[3][5]={90,85,70,60,50,90,85,70,60,50,90,85,70,60,50};
int*p[3];
void pingjun();
void fail();
void youxiu();
int main()
{
p[0]=a[0];
p[1]=a[1];
p[2]=a[2];
cout<<"一个班有五名学生,分别是小1,小2,小3,小4,小5,学号分别是1,2,3,4,5"<<endl;
cout<<"每一个学生有3门成绩:"<<endl;
cout<<"小1"<<" "<<"小2"<<" "<<"小3"<<" "<<"小4"<<" "<<"小5"<<endl;
for(int i=0;i<3;i++)
{
for(int j=0;j<5;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<"上述的每一行代表一门成绩"<<endl;;
pingjun();
fail();
youxiu();
return 0;
}
void pingjun()
{
double sum=0;
double pingjun;
for(int j=0;j<5;j++)
sum+=a[1][j];
pingjun=sum/5;
cout<<"第2门课程的平均成绩是:"<<pingjun<<endl;
}
void fail()
{
for(int i=0;i<5;i++)
{
int count=0;
for(int j=0;j<3;j++)
{
if(*(p[j]+i)<60)
count++;
if(count>=2)
{
cout<<"两门成绩不及格的学生是学号为"<<i+1<<"的小"<<i+1<<endl;
cout<<"他的全部课程成绩分别是:"<<endl;
for(j=0;j<3;j++)
cout<<*(p[j]+i)<<" ";
cout<<endl;
}
}
}
}
void youxiu()
{
double sum_1=0;
double pingjun_1;
for(int i=0;i<5;i++)
{
for(int j=0;j<3;j++)
sum_1+=*(p[j]+i);
pingjun_1=sum_1/3;
if(pingjun_1>=90)
cout<<"平均成绩在90分以上的是小"<<i+1;
sum_1=0;
}
cout<<endl;
for(i=0;i<5;i++)
{
int count=0;
for(int j=0;j<3;j++)
{
if(*(p[j]+i)>=85)
count++;
if(count==3)
cout<<"全部课程在85分以上的是小"<<i+1<<endl;
}
}
}