/*****1、将10个整型数2、3、6...18和20赋予一个数组,然
后使用指针叔叔该数组个元素的值*******************/
#include<iostream>
using namespace std;
int main()
{
int a[10]={2,4,6,8,10,12,14,16,18,20};
int *p=a;
for(int i=0;i<10;i++,p++)
cout<<*p<<" ";
cout<<endl;
return 0;
}
/*****2、把键盘输入的一个大写字符串改为小写字符串并显示出来,
其中大小写转换使用自定义函数lower()实现*******************/
#include<iostream>
using namespace std;
void lower(char *p);
int main()
{
char a[20],i;
cout<<"请输入一个大写字符串:";
cin.get(a,20);
lower(a);
cout<<"该字符串的小写形式为:";
for(i=0;a[i]!=NULL;i++)
cout<<a[i];
cout<<endl;
return 0;
}
void lower(char *p)
{
while(*p!=NULL)
{
if(*p>='A'&&*p<='z')
{
*p+=32;
p++;
}
}
}
/******3、输入一个字符串,删除其中的所有空格后输出*******************/
#include<iostream>
using namespace std;
int main()
{
char a[20],*p;
cout<<"输入一个字符串:"<<endl;
cin.get(a,20);
cout<<"删除空格后的字符串为:"<<endl;
for(p=a;*p!='\0';p++)
if(*p!=' ')
cout<<*p;
cout<<endl;
return 0;
}
/******4、编写程序,当输入整数1-12月份时,输出该月的英文名称, 输
入其他整数时结束程序。例如,输入4,则输出April;输入0,则退出程
序,要求使用指针数组处理*******************/
#include<iostream>
using namespace std;
int main()
{
char *month[]={"January","February","March","April","May","June",
"July","August","September","October","November","December"};
int i;
while(1)
{
cout<<"请输入1~12之间的整数:";
cin>>i;
if(i<1||i>12)
break;
cout<<"该整数对应的月份为:"<<month[i-1]<<endl;
}
return 0;
}
/*****5、分别使用指针数组和二级指针输入、
输出一个二维整型数组************/
#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;
}
/*********6、输入一个3x4的矩阵,编写函数
求其中的最大元素*******************/
#include <iostream>
using namespace std;
int main()
{
int a[3][4],i,j,max;
cout<<"输入一个3x4的矩阵"<<endl;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
cin>>a[i][j];
cout<<"你输入的矩阵为: "<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
cout<<a[i][j]<<'\t';
cout<<endl;
}
max=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
if(max<a[i][j])
max=a[i][j];
}
cout<<"矩阵的最大值为: "<<max<<endl;
return 0;
}
/*********第三题: 有n个人围成一个圆圈,从第一个人开始报数,从1到3循环,
凡是报3的退出圈子,问最后退出圈子的人是原来的几号**************/
#include <iostream>
using namespace std;
int main()
{
int n,i,j=1;
cout<<"请输入一个数字"<<endl;
cin>>n;
cout<<"最后退出圈子的人是原来的";
for(i=1;i<n+1;i++)
{
if(j%3==0)
cout<<i<<"号"<<" ";
j++;
}
cout<<endl;
return 0;
}
/*********第四题:一个班有5个学生,每一个学生有几门成绩(到底是几门自已定,或3或4或5或6),
定义函数来完成下面功能:计算第2门课成的平均分;找出有2门以上成绩不及格的学生,并输出其学号
和全部课程成绩;找出平均成绩在90以上或者全部课程在85分以上的学生**********/
#include<iostream>
using namespace std;
void fun0(int n)
{
char name[5][5]={"zhao","qian","sun","li","chen"};
cout<<"姓名:"<<name[n]<<'\t';
}
void fun1(int a,int b,int c, int d,int e)
{
double ave;
ave=double(a+b+c+d+e)/5;
cout<<"第2门课程的平均分为"<<ave<<"分"<<endl;
cout<<endl;
}
void fun2(int *a)
{
int i,j=0,*b;
b=a;
a++;
for(i=1;i<5;i++)
{
if(*a<60)
a++,j++;
else
a++;
}
if(j>=2)
{
int i;
fun0(a[0]);
cout<<"学号: "<<*b<<'\t';
b++;
cout<<"四科成绩分别为: ";
for(i=0;i<4;i++,b++)
cout<<*b<<'\t';
cout<<endl;
}
}
void fun3(int *a)
{
int i,*b,*c,j=0,sum=0;
double ave;
b=c=a;
a++,b++;
for(i=0;i<4;i++,a++)
sum+=*a;
ave=double(sum)/4;
for(i=0;i<4;i++)
{
if(*b>=85)
b++,j++;
else
b++;
}
if(j==4 || ave>=90)
fun0(a[0]);
}
int main()
{
int zhao[]={1,96,90,80,65};
int qian[]={2,86,85,86,87};
int sun[]={3,55,45,60,35};
int li[]={4,95,95,95,95};
int chen[]={5,55,56,55,56};
fun1(zhao[2],qian[2],sun[2],li[2],chen[2]);
cout<<"2门以上成绩不及格的学生有"<<endl;
fun2(zhao);
fun2(qian);
fun2(sun);
fun2(li);
fun2(chen);
cout<<"平均成绩在90以上或者全部课程在85分以上的学生有"<<endl;
fun3(zhao);
fun3(qian);
fun3(sun);
fun3(li);
fun3(chen);
cout<<endl;
return 0;
}