不知不觉到了一维数组了,把c语言比作打游戏的话
接下来就是尝试去打基础小怪了!加油把,骚年!!!
1.
#include <stdio.h>
int main(){
int N,n,i,k,min,max,t=0,b=0,a[10],h;
scanf("%d",&N);
getchar();
for(i=0;i<N;i++)
{
scanf("%d ",&a[i]);
}
min=a[0];
max=a[0];
for(k=1;k<N;k++)
{
if(a[k]<=min)
{
min=a[k];
t=k;
}
}
h=a[0];
a[0]=a[t];
a[t]=h;
for(k=1;k<N;k++){
if(a[k]>=max)
{max=a[k];
b=k;}
}
h=a[N-1];
a[N-1]=max;
a[b]=h;
for(i=0;i<N;i++)
{printf("%d ",a[i]);}
return 0;
}
2.
#include <stdio.h>
int main(){
int N,i,a[100],x,k,t,j,b=0;
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%d ",&a[i]);
}
scanf("%d",&x);
for(k=0;k<N;k++)
{
if(x<=a[k])
{
t=k;
break;
}
if(x>a[N-1]){b=1;break;}
}
if(b==0)
{
for(j=N;j>k;j--)
{
a[j]=a[j-1];
}
a[t]=x;
}
if(b==1){a[N]=x;}
for(i=0;i<N+1;i++)
{printf("%d ",a[i]);}
return 0;
}
3.
#include <stdio.h>
int main(){
int n,m,i,a[100],t,j,c=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{scanf("%d ",&a[i]);
}
scanf("%d",&m);
for(i=0;i<n;i++)
{ if(a[i]==m)
{
for(t=i;t<n-1;t++)
{ a[t]=a[t+1]; }
n--;
i--;
for(j=0;j<n;j++)
{printf("%d ",a[j]);}
printf("\n");
c=1;
}
}
if(c==0)
{
for(j=0;j<n;j++)
printf("%d ",a[j]);
}
return 0;
}
4.
#include <stdio.h>
int main(){
int m,a[10],n,b[10],i,t,j,c[100],g,z;
scanf("%d",&m);
for(i=0;i<m;i++)
{scanf("%d ",&a[i]);
}
scanf("%d",&n);
for(i=0;i<n;i++)
{scanf("%d ",&b[i]);
}
g=m+n;
//接收数据
for(i=0;i<m;i++)
{ c[i]=a[i]; }
for(i=0;i<n;i++)
{ c[i+m]=b[i]; }
//删除多余数据
for(i=0;i<g-1;i++)
{
for(t=i+1;t<g;t++)
{
if(c[i]==c[t])
{
for(j=t;j<g;j++)
{
c[j]=c[j+1];
}
i--; //注意i代表的c[i]的值前移了一位,所以要保证未比较数值比较,需-1
g--; //同理,g代表数组个数-1
}
}
}
//比较大小
for(i=0;i<g-1;i++)
{
for(j=i+1;j<g;j++)
{
if(c[i]>c[j])
{
z=c[j];
c[j]=c[i];
c[i]=z;
}
}
}
for(i=0;i<g-1;i++)
{
printf("%d ",c[i]);
}
printf("%d",c[g-1]);
return 0;
}
5.
#include <stdio.h>
int main(){
int i,t,a[10],m,c=1,di=0,k; //m表示次数,c是比较量
for(i=0;i<10;i++)
{ scanf("%d ",&a[i]);}
for(i=0;i<9;i++)
{ m=1;
for(t=i+1;t<10;t++)
{if(a[i]==a[t])
m++; //m负责每个数的重复次数计数
}
if(m>c) //c负责输出时把最多次数的次数输出
{
c=m;
di=i;
}
}
printf("%d出现了%d次",a[di],c);
return 0;
}
6.
int main(){
int a[4],i,j,k;
for(i=0;i<4;i++)
scanf("%d",&a[i]);
for(k=0;k<3;k++) //重复三次 怕连续三个均为0
{
for(i=0;i<3;i++)
{
if(a[i]==0)//当该格为空的时候
{
for(j=i;j<4;j++)//右边的往左移动,a[3]此时理论上接受a[4],但a[4]不存在
{
a[j]=a[j+1];
}
a[3]=0;
}
}
}
for(i=0;i<3;i++)
{
if((a[i]==a[i+1])&&(a[i]!=0))//如果前后值相等,前后相加放前面
{
a[i]+=a[i+1];
for(j=i+1;j<4;j++)
{
a[j]=a[j+1];//右边的往左移动,a[3]此时理论上接受a[4],但a[4]不存在
}
a[3]=0; //记得最后一位a[3]放个0
}
}
for(i=0;i<4;i++)
{
if(i==3)
printf("%d\n",a[i]);
else
printf("%d ",a[i]);
}
return 0;
}