break;
}
if(kt++;
}
}
printf("%d",t);
return0;
}
题7:
门禁系统
#include
intmain()
{
inti,n,s=0;
inta[1001]={0};
scanf("%d",&n);
for(i=0;i{
scanf("%d",&s);
a[s]++;
printf("%d",a[s]);
}
return0;
}
题8:
z字形扫描
#include
intmain()
{
inti,j,k,n;
inta[500][500];
scanf("%d",&n);
for(i=0;i{
for(j=0;j{
scanf("%d",&a[i][j]);
}
}
for(k=0;k<2*n-1;k++)
{
for(i=0;i{
for(j=0;j{
if(i+j==k)
{
if(k%2==0)
{
printf("%d",a[j][i]);
}
else
{
printf("%d",a[i][j]);
}
}
}
}
}
return0;
}
题9:
图像旋转
#include
#defineN1000
inta[N][N];
intmain()
{
inti,j,n,m;
scanf("%d%d",&n,&m);
for(i=0;i{
for(j=0;j{
scanf("%d",&a[i][j]);
}
}
for(j=1;j<=m;j++)
{
for(i=0;i{
if(i!
=0)
printf("");
printf("%d",a[i][m-j]);
}
printf("\n");
}
return0;
}
题10:
数字排序
#include
intmain()
{
inti,j,n,s=0;
inta[1001]={0};//注意初始化赋值
scanf("%d",&n);
for(i=0;i{
scanf("%d",&s);
a[s]++;
}
for(i=1001;i>0;i--)//i为从后找起的频数
{
for(j=0;j<1001;j++)//数组下标从小到大
{
if(a[j]==i)//找自己
{
printf("%d%d\n",j,a[j]);
}
}
}
return0;
}
题11:
数列分段
#include
intmain()
{
inti,n,t=0;
inta[1001];
scanf("%d",&n);
for(i=0;i{
scanf("%d",&a[i]);
}
for(i=0;i{
if(a[i]!
=a[i+1])t++;
}
printf("%d",t+1);
return0;
}
题12:
日期计算
#include
intmain()
{
inty,d,day,i;
intmouth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d%d",&y,&d);
if((y%4==0&&y%100!
=0)||(y%400==0))
{
mouth[2]++;
}
for(i=1;i<13;i++)
{
if(d>mouth[i])
{
d=d-mouth[i];
if(d==0)
{
d=mouth[i];
break;
}
}
elsebreak;//注意中断,确保月份不出错
}
printf("%d\n%d",i,d);
return0;
}
题13:
数位之和
#include
intmain()
{
intn,sum=0;
scanf("%d",&n);
while(n)
{
sum=sum+n%10;
n=n/10;
}
printf("%d",sum);
return0;
}
题14:
消除类游戏
#include
intmain()
{
inti,j,k,n,m,t=1;
inta[31][31]={0};
intb[31][31]={0};
scanf("%d%d",&n,&m);
for(i=0;i{
for(j=0;j{
scanf("%d",&a[i][j]);
}
}
for(i=0;i{
for(j=0;j{
while(a[i][j]==a[i][j+1])//check行
{
j++;
if(j==m)break;
t++;
if(t>=3)
{
for(k=j-t+1;k<=j;k++)
{
b[i][k]=1;
}
}
}
t=1;
}
}
for(j=0;j{
for(i=0;i{
while(a[i][j]==a[i+1][j])//check列
{
i++;
if(i==n)break;
t++;
if(t>=3)
{
for(k=i-t+1;k<=i;k++)
{
b[k][j]=1;
}
}
}
t=1;
}
}
for(i=0;i{
for(j=0;j{
if(b[i][j])a[i][j]=0;//将找到的赋0
}
}
for(i=0;i{
for(j=0;j{
printf("%d",a[i][j]);
}
printf("\n");
}
return0;
}
题15:
折点计数
#include
intmain()
{
inti,n,t=0;
inta[1001];
scanf("%d",&n);
for(i=0;i{
scanf("%d",&a[i]);
}
for(i=0;i{
if((a[i+1]a[i]&&a[i+1]>a[i+2]))t++;
}
printf("%d",t);
return0;
}
题16:
俄罗斯方块
#include
intmain()
{
inti,j,n;
intk=0,count=0,down=0;
intx[4],y[4];
inta[15][10];
intb[4][4];
for(i=0;i<15;i++)
{
for(j=0;j<10;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&b[i][j]);
}
}
scanf("%d",&n);
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(b[i][j]==1)
{
x[k]=i;
y[k]=j;
k++;
}
}
}
while
(1)
{
for(i=0;i<4;i++)
{
if(a[x[i]+down][y[i]+n-1]==0)
{
count++;
}
}
if(count==4)
{
down++;
count=0;
}
else
{
if(x[i]+down==14)
{
for(j=0;j<4;j++)
{
a[x[j]+down][y[j]+n-1]=1;
}
break;
}
else
{
for(j=0;j<4;j++)
{
a[x[j]+down-1][y[j]+n-1]=1;
}
break;
}
}
}
for(i=0;i<15;i++)
{
for(j=0;j<10;j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}
return0;
}
题17:
最大波动
#include
#include
intmain()
{
inti,n,t=0;
inta[1001]={0};
scanf("%d",&n);
for(i=0;i{
scanf("%d",&a[i]);
}
for(i=0;i{
if(t{
t=abs(a[i]-a[i+1]);
}
}
printf("%d",t);
return0;
}
题18:
火车购票
#include
intmain()
{
inti,j,n,t,k;
intflag;
inta[100]={0};
intb[20]={0};
scanf("%d",&n);
for(i=0;i<20;i++)
{
b[i]=5;
}
for(i=0;i{
scanf("%d",&t);
flag=0;
for(j=0;j<20;j++)
{
if(b[j]>=t)//有连续座位
{
for(k=1;k<=t;k++)
{
printf("%d",j*5+(5-b[j])+k);
}
printf("\n");
b[j]=b[j]-t;
flag=1;
break;
}
}
if(flag==0&&t>0)//无连续座位且有人买票
{
for(j=0;j<20;j++)
{
while(b[j]>=1)//分散买票
{
printf("%d",j*5+(5-b[j])+1);
t--;
b[j]--;
}
}
printf("\n");//注意换行的情况
}
}
return0;
}
题19:
中间数
#include
intmain()
{
inti,j,n,zuo,you;
intt=-1;
inta[1001];
scanf("%d",&n);
for(i=0;i{
scanf("%d",&a[i]);
}
for(i=0;i{
zuo=0;//注意初始化
you=0;
for(j=0;j{
if(a[i]>a[j])
zuo++;
if(a[i]you++;
}
if(zuo==you)
{
t=a[i];
}
}
printf("%d",t);
return0;
}
题20:
工资计算
#include
intmain()
{
inti,t;
intx=0;
scanf("%d",&t);
if(t<=3500)
{
printf("%d",t);
}
for(i=3600;i<=100000;i=i+100)
{
if(i>=3600&&i<=5000)
{
x+=(i-3500)*0.03;
}
if(i>=5100&&i<=8000)
{
x+=(i-5000)*0.1+45;
}
if(i>=8100&&i<=12500)
{
x+=(i-8000)*0.2+45+300;
}
if(i>=12600&&i<=38500)
{
x+=(i-12500)*0.25+45+300+900;
}
if(i>=38600&&i<=58500)
{
x+=(i-38500)*0.3+45+300+900+6500;
}
if(i>=58600&&i<=83500)
{
x+=(i-58500)*0.35+45+300+900+6500+6000;
}
if(i>=83600)
{
x+=(i-83500)*0.45+45+300+900+6500+6000+8750;
}
if(i-x==t)
{
printf("%d",i);
break;
}
}
return0;
}
题21:
分蛋糕
#include
intmain()
{
inti,n,k;
intsum=0,t=0;
inta[1001];
scanf("%d%d",&n,&k);
for(i=0;i{
scanf