输入十个不相同的整数,按输入顺序存在一维数组中,把所有小于平均值的数找出来,并按由大到小排序输出
3个回答
展开全部
按照题目输入10个数保存到一纬数组。
之后对一纬数组进行降序排序。
最后对排序后的数组与平均值比较并输出。
#include<stdio.h>
int checkNum(int num,int nums[],int len);//检查数字是否子数组存在,存在返回1,不存在返回0
int input(int nums[]);//输入10个不重复的数字保存到nums数组,返回数值总和
int main()
{
int i,j,nums[10],sum;
float avg;
sum=input(nums);
avg=(float)sum/10;
for(i=0;i<10;i++)//冒泡排序,降序排列
for(j=i+1;j<10;j++)
if(nums[i]<nums[j])
nums[i]^=nums[j],nums[j]^=nums[i],nums[i]^=nums[j];
for(i=0;i<10;i++)
if(nums[i]<avg)
printf("%d ",nums[i]);
printf("\n");
return 0;
}
int input(int nums[])
{
int i,num,len,sum,flag=1;
while(flag)
{
len=0;
sum=0;
for(i=0;i<10;i++)
{
scanf("%d",&num);
if(!checkNum(num,nums,len))
nums[len]=num,sum+=num,flag=0,len++;
else
{
printf("数字输入有重复!请重新输入10个数字!\n");
flag=1;
fflush(stdin);
break;
}
}
}
return sum;
}
int checkNum(int num,int nums[],int len)//检查数字是否子数组存在,存在返回1,不存在返回0
{
int i;
if(!len)
return 0;
for(i=0;i<len;i++)
if(num==nums[i])
return 1;
return 0;
}
展开全部
我回答 烦请采纳哦
void main()
{
int a[10];int q=0,p=0,sum=0,i,j;
printf("请输入10个数字");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
p=sum/10;
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]<a[j])
{
q=a[i];
a[i]=a[j];
a[j]=q;
}
for( i=0;i<10;i++)
{
if(a[i]<p)
printf("%d ",a[i]);
}
void main()
{
int a[10];int q=0,p=0,sum=0,i,j;
printf("请输入10个数字");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
p=sum/10;
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]<a[j])
{
q=a[i];
a[i]=a[j];
a[j]=q;
}
for( i=0;i<10;i++)
{
if(a[i]<p)
printf("%d ",a[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
#define N 10
int main(int argc,char *argv[]){
int a[N],i,j,k;
double ave;
printf("Please enter %d integers...\n",N);
for(k=i=0;i<N;scanf("%d",a+i),k+=a[i++]);
for(ave=k/(N+0.0),i=0;i<N;i++)
if(a[i]<ave){
for(k=i,j=k+1;j<N;j++)
if(a[j]<ave && a[k]<a[j])
k=j;
if(k!=i)
j=a[k],a[k]=a[i],a[i]=j;
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
运行样例:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询