C语言编程问题

输入N组数据;

每组数据包括:
第一行输入一个整数T,表明有T个整数;

接下来每行输入一个整数,输入T行整数;
输出这T行整数出现次数最多的整数;
如果有多个答案,就输出最小那个整数;
例如:
2 //两组数据
4 //有4行整数
2
4
5
7
2 //以上四个整数出现次数都为1,所以输出最小的整数2
5 //五组数据
3
3
3
3
1
3 //以上五个整数出现最多的是3,输出3我要源代码!!

第1个回答  2015-11-28
代码较长,且没注释,花了几个小时才写出来,累死了。。。你自己看看吧!
#include<stdio.h>

int N,M;//N组数据,每组数据M个值
int a[100];
int A[100];
int b[100];
int result;

void ini()
{
int i;
for(i=0;i<100;i++)
{
A[i] = 1;
a[i] = 0;
b[i] = 0;
}
}

void input()
{
int i;
for(i=0;i<M;i++)
{
scanf(" %d",&a[i]);
}
}

void output(int m)
{
int i;
for(i=0;i<m;i++)
{
printf("%d ",a[i]);
}
printf("\n");
for(i=0;i<m;i++)
{
printf("%d ",A[i]);
}
printf("\n");
}

int f1()
{
int m = M;
int i,j,k;
for(i=0;i<m-1;i++)
{
for(j=i+1;j<m;j++)
{
if(a[i] == a[j]&&j < m-1)
{
for(k=j+1;k<m;k++)
{
a[k-1] = a[k];
}
A[i]++;
m--;
j--;
}
if(a[i] == a[j]&&j == m-1)
{
A[i]++;
m--;
j--;
}
}
}
return m;
}

int f2(int m)
{
int i,j = 0,k = 0;
int n = m;
int max = A[0];
for(i=1;i<m;i++)
{
if(max<A[i])
{
max = A[i];
}
}
//printf("%d\n",m);
//printf("%d\n",max);
while(j<m)
{
if(max == A[j])
{
b[k] = a[j];
}
else
{
k--;
n--;
}
j++;
k++;
}
//printf("%d %d %d",b[k]);
return n;
}

int main()
{
int m,n,i,j = 1;
//printf("%d\n",A[10]);
scanf(" %d",&N);
while(j<=N)
{
ini();
scanf(" %d",&M);
input();
m = f1();
//output(m);
n = f2(m);
//printf("%d",n);
result = b[0];
for(i=1;i<n;i++)
{
if(result>b[i])
{
result = b[i];
}
}
printf("%d\n",result);
j++;
}
}
第2个回答  2015-11-28
#include<stdio.h>
#define M 1000
main()
{
int m;//几组数据
int T;

// int n;
int i;
int max;
scanf("%d",&m);

while(m--)
{
int a[M] ={0}; //存放每个数字的个数
int b[M]={0}; //存放输入的数字
scanf("%d",&T);//输入每一组有几行
for(i = 0; i < T; i++)
{
scanf("%d",&b[i]);
a[b[i]]++;
}
max =M-1;
for(i = M-1; i>=0; i--)
{
if(a[max] <= a[i])
max = i;

}
printf("%d\n",max);

}

}本回答被提问者和网友采纳

C语言编程常见十大面试问题(内附答案)
C语言编程面试中常遇到的十大问题,下面就逐一解答:1. 变量\/函数声明与定义的区别:变量\/函数声明告知程序它们的存在,如类型和参数信息,但不分配内存。定义则同时包含声明并为变量分配内存,定义是声明的扩展或细化操作。2. C中的存储类说明符:主要有auto、register、static和extern,它们分别定义了变量...

c语言程序 哪里出错了呢 始终运行不出结果
在C语言编程中,若程序始终无法输出结果,可能是因为输入数据的类型与程序调用的数据类型不一致。以scanf函数为例,当使用 scanf("%lf%lf%lf",&a,&b,&c);进行输入时,确实将输入的数字以float类型存储至内存中。然而,程序在读取这些内存时,可能期望以double类型进行解析。这种类型不匹配会导致解析出...

C语言问题:求1到100的累加和。
在C语言中,我们讨论了两个不同的自增操作符:++在前和++在后。这些操作符的用法和效果对于理解和解决编程问题至关重要。首先,让我们了解一下它们之间的差异。++在前表示先立即自增1再参与本条语句的运算。这种用法意味着在使用变量进行计算后,变量的值才增加1。反之,++在后表示在本条语句运算结束...

c语言问题:出现'unexpected end of file found”是怎么回事呀?_百度...
结论:在C语言编程中遇到'unexpected end of file found'的错误,通常是因为大括号({})的配对出现了问题。这个错误意味着编译器在预期文件结束的地方没有找到相应的关闭大括号,导致编译过程中栈中未消去的开括号。解决方法就是检查文件的最后,确保所有开启的大括号都有相应的关闭大括号。C语言以其简...

C语言编程问题,incompatible type for argument 1 of '函数名',请问这...
C语言编程中遇到'incompatible type for argument 1 of '函数名'的错误,通常是因为函数调用时传入的参数类型与函数期望的数组名类型不符。解决这个问题的关键是检查调用函数时的参数,确保其确实是一个数组名,而不是数组的其他类型。解决这类错误的步骤如下:仔细检查代码中调用该函数的地方,寻找可能的...

C语言编程最常见的15个错误
C语言编程最常见的15个错误 C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。以下是关于C语言编程最常见的15个错误,希望大家认真阅读!1.书写标识符时,忽略了大小写字母的区别。main(){ int a=5;printf("%d",A); } 编译程序把a和A认为是两个不同的变量名,而...

基础C语言编程时易犯错误有哪些
一、基础知识和数据类型、表达式 1、{},[],(),‘’,“”不配对。解决这个问题最好的方法就是每当写这些符号的时候就先写成一对,然后再在中间加内容。 2、忘记在语句的末尾加分号,或在预处理命令后多加分号。记住:每一个语句的后边都要加分号,而预处理命令并不是语句,所以不加分号...

大学福音经典编程题适用于专升本
C语言100道适用专升本超有用 1.十进制数转任意进制数 2.数字三角形 3,编程求某年第 n 天的日期。 4.求周岁 5.编程求出使该算式成立时的这两个数 6.功能:(较难不用看) 编程求任意给两个日期(年 月日)相差的天数。 7.把一个数的二进制奇数位和偶数位交换 8.题目要求找出数组中的两个单身狗 9,数...

c语言能解决哪些问题
C语言能解决的问题 一、系统开发问题 C语言首先是一种通用编程语言,它可以用于开发各种类型的系统软件和应用程序。例如,操作系统、编译器、驱动等核心组件大多使用C语言开发,因其具有直接访问内存、进行复杂运算和进行底层设备操作的能力。此外,C语言还常被用于开发嵌入式系统,如智能家居控制、工业控制等...

用C语言编程:从键盘输入10个学生的成绩,由高到低排序输出成绩
在C语言编程中,要实现从键盘输入10个学生的成绩并按高分到低分进行排序,可以使用经典的冒泡排序算法。下面是一个简化的步骤描述: 首先,包含必要的头文件并定义数组大小: 利用C语言,我们可以使用冒泡排序算法轻松解决这个问题。开始时,需要包含,并设定一个数组大小,例如#defineSIZE11。 接着,定义一个bubble_sort函数...

相似回答
大家正在搜