填空题
以下程序运行时,若输入1到变量k1,输入85到变量k2,则输出的第一行是
1,第二行是
2,最后一行是
3。
#include<iostream.h>
int sieve(int x[][4],int n,int y[][4],int key1,int key2,int *p1,int *p2)
{
int i=0,k,m=0;
while(i<n)
{
if(x[i][1]==key1 && x[i][2]>=key2 && x[i][3]>=key2)
{
for(k=0;k<4;k++)
y[m][k]=x[i][k];
m ++:
}
i ++;
}
*p1=*p2=0;
for(i=0;i<m;i++)
{
*p1+=y[i][2];
*p2+=y[i][3];
}
*p1/=m;
*p2/=m;
return m;
}
int main()
{
int a[6][4]={{101,1,97,90},{102,0,92,89},{103,0,88,78},{104,1,90,
90},{105,1,60,70},{106,1,93,87}},b[6][4]={0};
int count=6,k1,k2,av1,av2,i,j;
cout<<"key1=";
cin>>k1;
cout<<"key2=";
cin>>k2;
count=sieve(a,count,b,k1,k2,&av1,&av2);
for(i=0;i<count;i++)
{
for(j=0;j<4;j++)
cout<<b[i][j]<<"/t";
cout<<endl;
}
cout<<"ave1="<<av1<<"/tave2="<<av2<<endl;
return 0;
}