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,不等于就输出空格。
注意:数组超过十万定义成全局变量。