首页 > 试题广场 >

从键盘输出若干正整数(≤100)0表示结束,请设计一个在时间

[问答题]

从键盘输出若干正整数(≤100)0表示结束,请设计一个在时间方面尽可能有效的算法将出现次数超过3次及以上的整数按照从小到大的顺序输出,并写出完整程序。

hashtable
发表于 2023-03-17 19:37:16 回复(0)
#include<stdio.h>
int main()
{
    int f=1,i=0,j=0,k=0,l=0,n=0,m=0,count=0,t,a[100]={0},temp[100]={0}; 
    do
    {
        i++;
        k++;
        scanf("%d",&a[i-1]);        
    }while(a[i-1]!=0&&i<100);
    for(i=0;i<k;i++)
    {
        n=a[i];
        for(j=i;j<k;j++)
        {
            if(n==a[j])
            count++;
        }
        if(count>=3)
        {
            for(m=0;m<=l;m++)
            {
                if(n==temp[m])
                {                    
                    f=0;
                    break;
                }
                else
                f=1;
            }
            if(f==1)
            {
                temp[l]=n;
                l++;
            }
        }
        count=0;
    }
    for(i=0;i<l-1;i++)
    {
        f=1;
        for(j=0;j<l-1;j++)
        {
            f=0;
            if(temp[j]>temp[j+1])
            {
                t=temp[j];
                temp[j]=temp[j+1];
                temp[j+1]=t;
            }
        }if(f)break;
    }
    for(i=0;i<l;i++)
    {
        printf("%d ",temp[i]);
    }
}
发表于 2017-12-05 15:06:04 回复(0)
    int input[10]={5,2,3,5,4,3,2,1,6,6};
    int temp[10]={0};
    for (int i=0;i<10;i++) {
        temp[input[i]]+=1;
    }
    for (int i=0;i<10;i++) {
        if (temp[i]>1) {
            printf("%d,",temp[i]);
        }
    }
发表于 2017-12-04 19:59:54 回复(0)