输入十个不相同的整数,按输入顺序存在一维数组中,把所有小于平均值的数找出来,并按由大到小排序输出

 我来答
自我编程
2019-05-27 · 科技优质答主
自我编程
采纳数:1481 获赞数:4270

向TA提问 私信TA
展开全部

按照题目输入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;
}
飘零的狐狸
2019-05-27 · TA获得超过1.8万个赞
知道大有可为答主
回答量:9251
采纳率:77%
帮助的人:2112万
展开全部
我回答 烦请采纳哦
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]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2019-05-27 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:5692万
展开全部
#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;
}

运行样例:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式