【二级C】一维数组习题

以下内容纯属C语言初学者为了实现其功能,如有bug或者有其他不好的地方请见谅

----------------------------------------------------------------------------------------------------------------

//题目一.输入5个数,求出大于平均数的数。

#include <stdio.h>
int main()
{
int arr[5],i=0,y[5];
float max=0;
printf("please input ten numbers:\n");
for(i=0;i<5;i++)
{
scanf("%d",&arr[i]);
}
max=(arr[0]+arr[1]+arr[2]+arr[3]+arr[4])/5;
int age=0;
for(i=0;i<5;i++) //循环5次将大于平均数的给数组y[i]
{
if(arr[i]>max)
{
y[age]=arr[i];
age++;
}

}
for(i=0;i<age;i++)
{
printf("大于平均数的有%d:",y[i]);
}
return 0;

}

//题目二.计算x数组中5个数的平均值,将x数组中大于平均值的数移动到x数组的前面,小于平均值的数移动到x数组的后面。

//并输出改变后的x数组。(提示:可以使用y数组暂存数据,然后再将y数组中的元素赋值到x数组中)。
#include <stdio.h>
int main()
{
int arr[5],i=0,y[5],x[5],max=0,a=0,b=0;
float age;
printf("please input five numbers:\n");
for(i=0;i<5;i++)
{
scanf("%d",&arr[i]);
max+=arr[i];
}
age=(max/5);
for(i=0;i<5;i++) //循环5次将大于平均数的给数组y[i]
{
if(arr[i]>age)
{
x[a]=arr[i];
a++;
}
else
y[b]=arr[i];
b++;
}
for(i=0;i<b;i++)
{
x[a]=y[i];
a++;
}
for(i=0;i<5;i++)
{
printf("%5d",x[i]);
}

return 0;

//题目三调用随机函数产生20个互不相同的整数放到a数组中,并输出a数组中的所有元素。

#include<stdio.h>
#include<time.h>
int main()
{
int i=0,j=0,num=0,a[20];
srand((unsigned)time(NULL));
while(1)
{
num=rand()%100+1;//这里的数字100是随机数的范围,num是随机数
for(j=0;j<i;j++) //j小于存放随机数的i
{
if(num==a[j])
break; //将跟随机数一样的用break跳出去,跳出去
}
if(j==i) //当j提前跳出去之后j和i就不会相等,用于存放随机数的数组a[i]也不会加
a[i++]=num; //i的作用是存放不一样的循环数
if(i==20)
break; //最后一个break用于跳出while
}
for(j=0;j<20;j++)
printf("%d ",a[j]);
return 0;
}
}/*4.编写程序将十进制正整数m转换成k(2<=k<=9)进制数,并按位输出。若输入8和2,则应输出
1000(即十进制数8转换成二进制表示是1000)。*/
#include <stdio.h>
int main()
{
int m,k,arr[50],i=0;
printf("本程序是将十进制正整数转换成2~9进制数\n");
printf("please input two numbers:\n");
scanf("%d %d",&m,&k);
while(m!=0)
{
arr[i]=m%k;
m=m/k;
i++;
}
for(;i>0;i--)
{
printf("%d",arr[i-1]);
}
return 0;

}

/*5.编写程序,在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,并输出处理后的数据序列及中间数。
例如:有9个正整数:1 5 7 23 87 5 8 21 45
按升序排列时的中间数为:8
处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45*/
#include<stdio.h>
#define N 9
int main()
{
int app[N],b[N],mid,i,j,p,t;
printf("输入一个有9个元素的数组:");
for(i=0;i<N;i++)
{
scanf("%d",&app[i]);
}
for(i=0;i<N;i++)
b[i]=app[i];
for(i=0;i<N-1;i++)
{
p=i;
for(j=i+1;j<N;j++)
{
if(b[p]>b[j])
p=j;
}
if(p!=i)
{
t=b[i];
b[i]=b[p];
b[p]=t;
}
}
mid=b[N/2];
printf("按升序排列后数组的中间数为:%d\n",mid);
for(i=0;i<N;i++)
{
if(app[i]<mid)
app[i]=mid;
}
printf("处理后的数组:\n");
for(i=0;i<N;i++)
{
printf("%d ",app[i]);

}
return 0;
}

/*6.编写程序统计整型变量m中各数字出现的次数,并存放到数组a中,其中:a[0]存放0出现的
次数,a[1]存放1出现的次数,….a[9]存放9出现的次数。
例如:若m为14579233,则输出结果应为:0,1,1,2,1,1,0,1,0。1*/
#include<stdio.h>
int main()
{
int i=0,sum=0,m=0,arr[10];
printf("please input a numbers:\n");
scanf("%d",&sum);
for(i=0;i<10;i++)
{
arr[i]=0; //用来存放0~9,并且把i初始化为0
}
while(sum!=0)
{
m=sum%10;
sum=sum/10;
for(i=0;i<10;i++)
{
if(m==i)
{
arr[i]++;
break;
}
}
}
for(i=0;i<10;i++)
{
printf("%d的个数为%d\n",i,arr[i]);
}
return 0;
}


  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值