}
}
15.//编写一个程序,要求当输入一个数字月份时,程序输出该月的英文名称。
例如输入5时,程序输出"May",要求用指针数组实现。
#include
#include
voidmain()
{
//定义指针数组
char*month[12]={"January","February","March","April","May","June","July",
"August","September","October","November","December"};
intn;
cout<<"Inputthemonth(1-12):
";
cin>>n;
while((n>12)||(n<1))
{
cout<<"Inputthemonth(1-12):
";
cin>>n;
}
cout<<"Themonthis"<<*(month+n-1)<}
16.//编写一个程序,要求分别输入5个学生的3科成绩,并输出平均成绩最高的学生的姓名及各科成绩。
要求用结构体数组实现。
#include
#include
structstudent
{charname[20];//姓名
floatcourse1;//第一科成绩
floatcourse2;//第二科成绩
floatcourse3;//第三科成绩
floataverage;//平均成绩
};
structstudentstu[5];
voidmain()
{
floattemp=-100.0;
intj,k=0;
charc;
for(inti=0;i<5;i++)
{
cout<<"InputNO."<
";
cin>>stu[i].name;
cout<<"InputNO."<
";
cin>>stu[i].course1>>stu[i].course2>>stu[i].course3;//输入三科成绩
stu[i].average=(stu[i].course1+stu[i].course2+stu[i].course3)/3;//求平均成绩
if(temp{
temp=stu[i].average;//temp存放最高平均分
k=i;//k存放该同学的序号
}
}
cout<<"Thestudentis"<}
17.//编写一个函数,利用指针将一个字符串反向输出。
编写相应的主函数对其进行调用,在主函数中完成原始数据的输入和结果输出。
#include
voidreverse(char*a,intn)//a为字符串首地址,n+1为字符串长度
{
chartemp;
for(intk=0;k<((n+1)/2);k++)//a[k]和a[n-k]交换数据
{temp=*(a+k);
*(a+k)=*(a+n-k);
*(a+n-k)=temp;
}
}
voidmain()
{
chara[100];//最多输入100个字符
cout<<"Inputthestring:
"<cin.getline(a,100);
for(inti=0;a[i]!
=‘\0’;)//求字符串的长度
i++;
reverse(a,i-1);
cout<<"Thereversedstringis:
";
for(intj=0;j<=i-1;j++)/输出反向后的字符串
cout<<*(a+j);
cout<}
18.//编写一个函数,统计并返回一行文字中所有字母、数字、空格及其他字符的个数,同时编写相应的主函数,在主函数中能接收用户输入的一行文本,然后调用上面定义的函数,并在主函数中输出各种字符的个数。
#include
voidmain()
{
chara[100];//最多输入100个字符
cout<<"Inputthestring:
"<cin.getline(a,100);
intnum[4]={0,0,0,0};//分别存储数字、空格、字母和其它字符的个数
inti=0;
while(a[i]!
=‘\0’)//求字符串的长度
{
if((a[i]>=48)&&(a[i]<=57))//数字
num[0]+=1;
elseif(a[i]==32)//空格
num[1]+=1;
elseif(((a[i]>=65)&&(a[i]<=90))||((a[i]>=97)&&(a[i]<=122)))//大小写字母
num[2]+=1;
else//其它字符
num[3]+=1;
i++;
}
cout<<"TheStatisticresultis:
"<cout<<"number:
"<"<"character:
"<"<}