题库错题簿71—80

73.统计人数

int main()
{
int n,a[n],s=0,m=0; //a数组大小变量
cin>>n;
for(int i=0;i<n;i++)cin>>a[i];
for(int i=0;i<n;i++)s+=a[i];
for(int i=0;i<n;i++) //三循环炸掉
{
if(s/n>a[i])m++; //整除本来就比平均数小
}
cout<<m<<endl;
return 0;
 } 


75.删除最大数

int main()
{
int n,s=0,i;
cin>>n;
int a[100];
for(i=0;i<n;i++)
{
    cin>>a[i];
    if(s<a[i])s=a[i];
}

for(i=0;i<n;i++)
{
if(s==a[i])
{
a[i]==-1;
}
}

for(i=0;i<n-1;i++)
{
    if(a[i]!=-1&&a[i]!=s)cout<<a[i]<<" ";
}
if(a[i]!=-1&&a[i]!=s)cout<<a[i];
return 0;
 } 

1.不看题目要求,没有最大值时没有输出;

2.当最后一个数是最大值被删掉,输出后面有空格。

int j=0;
int b[100]={0};
for(i=0;i<n;i++)
{
    if(a[i]!=-1&&a[i]!=s)b[j++]=a[i];
}
if(j==0) cout<<"none";
else  
{
for(i=0;i<j-1;i++)
{
    cout<<b[i]<<" ";
}
cout<<b[i];
}


76.操作数组

虽然一遍ACE过的,但样例那里真的是卡很久。

总而言之就是自己蠢爆了= =

首先,删除数忘记n--,插入数忘记n++;

其次,不审题——在该位置插入数!!!

最后,知道了uoj输入和输出流是分开的,而我却还蠢蠢滴用一个数组保存输出数(虽然酱紫也没错啦,但多此一举)


78.赋值问题

先定义一个布尔数组b,字母a被a赋值的字母为1,其他的字母或者被a赋值后又被其他字母赋值的为0。

即b['a']=1;

或b[97]=1;

然后n行3列输入数组a,判断当b[a[i][3]]==1时,如果b[a[i][1]]==0,就让它=1,同时sum++(sum初值为1,因为不管如何肯定要输出a)。

                                      判断当b[a[i][3]]==0时,如果b[a[i][1]]==1,就让它=0,同时sum--。

最后输出时注意还是最后那个空格的问题。

为了规避最后一个数后面也有空格,我们另定义一个计数变量num=0,遍历b数组,如果b[i]=0就输出第一个字母并且break,剩下的字母按照“空格+字母”格式输出。

或者判断num是否等于sum,不等于就输出空格。

注意:数组超过十万定义成全局变量。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值