//* 7.6 *
//********************
# include <iostream.h>
int m[5][4]={{65,68,54,69},{62,82,83,81},{91,97,82,74},{75,32,91,72},{83,71,82,91}};
void top(int a[][4],int i,int j);
void fail(int b[][4],int i,int j);
void ave(int c[][4],int i,int j);
void main()
{
top(m,5,4);
fail(m,5,4);
ave(m,5,4);
}
void top(int a[][4],int i,int j)
{
int k,l;
int x,y,z;
for(k=0;k<j;k++)
{
z=a[0][k];x=0;y=k;
for(l=0;l<i;l++)
{
if(a[l][k]>z)
{x=l;y=k;z=a[l][k];}
}
cout<<"对第"<<k<<"门课程,成绩最高的是第"<<x<<"同学,成绩为:"<<z<<endl;
}
}
void fail(int b[][4],int i,int j)
{
cout<<endl;
int k,l;
for(k=0;k<i;k++)
{
int x=0;
for(l=0;l<j;l++)
{
if(b[k][l]<60)
x=1;
}
if (x==1)
{
cout<<"第"<<k<<"个同学有不及格课程,其各科成绩为:";
for(int y=0;y<j;y++)
{
cout<<b[k][y]<<",";
}
}
cout<<endl;
}
}
void ave(int c[][4],int i,int j)
{
cout<<endl;
int k,l;
for(k=0;k<j;k++)
{
int z=0;
for(l=0;l<i;l++)
{
z=z+c[l][k];
}
cout<<"对第"<<k<<"门课程,平均成绩为:"<<z/i<<endl;
}
}
//********************
//* 7.7 *
//* *
//* 9 5 11 *
//* 5 7 8 *
//* 9 0 3 *
//* *
//********************
# include <iostream.h>
# include <iomanip.h>
int a[3][3]={5,7,8,2,-2,4,1,1,1};
int b[3][3]={4,-2,3,3,9,4,8,-1,2};
void main()
{
int c[3][3];
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
c[j]=a[j]+b[j];
}
}
for(int x=0;x<3;x++)
{
for(int y=0;y<3;y++)
{
cout<<setw(4)<<c[x][y];
}
cout<<endl;
}
}
第8章
//********************
//* 8.1 *
//* 1 *
//* 0X0012FF5C *
//* 91 *
//********************
# include <iostream.h>
int * findmax(int * array,int size,int * index);
void main()
{
int a[10]={33,91,54,67,82,37,85,63,19,68};
int * maxaddr;
int idx;
maxaddr=findmax(a,sizeof(a)/sizeof(*a),&idx);
cout<<"the index of maximum element is"<<" "<<idx<<endl
<<"the address of it is"<<" "<<maxaddr<<endl
<<"the value of it is"<<" "<<a[idx]<<endl;
}
int * findmax(int * array,int size,int * index)
{
int * temp=array;
int j;
for(j=0;j<size;j++)
{
if(*(array+j)>*temp)
{
temp=array+j;
* index=j;
}
}
return temp;
}
//********************
//* 8.2********
//********************
# include <iostream.h>
int search(int num=10,int interval=3);
void main()
{
int num1;
int interval1;
while(1)
{
cout<<"please input the numbers of boys:";
cin>>num1;
cout<<"please input the interval:";
cin>>interval1;
if((num1<1) || (interval1<1)||(interval1>num1))
{
int i;
cout<<endl<<"please choice:"<<endl;
cout<<"other number---retry"<<" "<<"0---exit:"<<endl;
cin>>i;
if(i=0)
exit(1);
}
else
break;
}
int n=search(num1,interval1);
cout<<"/nNo."<<n<<"Boy's won./n";
}
int search(int num,int interval)
{
int * a=new int[num];
for(int j=0;j<num;j++)
a[j]=j+1;
for(int k=0;k<num;k++)
cout<<*(a+k)<<",";
cout<<endl;
int l=1;
int m=-1;
while(1)
{
for(int n=0;n<interval
{
m=(m+1)%num;
if(*(a+m)!=0)
n++;
}
if(l==num)
{
return m;
break;
}
cout<<*(a+m)<<endl;
*(a+m)=0;
l++;
}
delete []a;
}
//********************
//* 8.3.(1) *
//********************
# include <iostream.h>
# include <stdlib.h>
int compare(const void * a,const void * b);
int list1[10]={12,32,42,51,8,16,51,21,19,9};
int * list[10]={& list1[0],& list1[1],&list1[2],&list1[3],&list1[4],&list1[5],&list1[6],&list1[7],&list1[8],&list1[9]};
void main()
{
qsort((void *) list,10,sizeof(list[0]),compare);
for(int i=0;i<10;i++)
{
cout<<*list<<endl;
}
}
int compare(const void * a,const void * b)
{
int temp1=**(int**)a;
int temp2=**(int**)b;
temp1=temp1/10+(temp1-((temp1/10)*10));
temp2=temp2/10+(temp2-((temp2/10)*10));
if(temp1<temp2)
return -1;
else
{
if(temp1==temp2)
return 0;
else
return 1;
}
}