some programs!!

This commit is contained in:
rogerwang2008 committed 2026-09-28 14:05:06 +08:00
1 parent ed054247d5
commit 71f1022dea
38 files changed
+1037 -281

No files matched your search

+50
View File
@@ -0,0 +1,50 @@
#include <stdio.h>
int main() {
long long T; //注意变量都要初始化 ,T为数组个数
scanf("%lld", &T); //数组个数,决定过程要执行多少次
for (int i = 0; i < T; i++) {
long long n, m, bianhao, yushu, max = -1, index; //注意变量都要初始化,n为包裹个数,m为箱子个数,result是余数,max是装的最多
//以上变量必须定义在循环里,因为一组过后所有数据要重新开始!要不然max,index值未清除!
scanf("%lld%lld", &n, &m); //键入包裹的个数和箱子的个数
long long Amount[m], number[n]; //Amount是定义对应的箱子里装几个 ,number是用数组记录包裹的“编号”
//禁止写错数组个数!
for (int j = 0; j < m; j++) //初始化箱子数组 ,注意数组是m个
{
Amount[j] = 0;
}
for (int k = 0; k < n; k++) //把包裹赋值,记录到number里 注意数组是n个
{
scanf("%lld", &bianhao);
number[k] = bianhao;
}
for (int s = 0; s < n; s++) //进行mol m运算,余数计入number里
{
yushu = number[s] % m;
Amount[yushu] = Amount[yushu] + 1;
}
for (int t = 0; t < m; t++) //此循环计算哪个箱子装的最多
{
//max=-1;错误 在循环里定义会导致max每走一个t都会被重置!
if (max < Amount[t]) {
max = Amount[t];
}
}
for (int u = 0; u < m; u++) //此循环寻找下标
{
if (Amount[u] == max) {
index = u;
break;
}
}
for (int v = 0; v < m; v++) //此循环输出amount数组里各个元素的大小
{
printf("%lld ", Amount[v]);
}
printf("\n");
printf("%lld %lld", index, max);
printf("\n");
}
return 0;
}