解题思路:已知a个物块可以练成b个物体,转化率为v,可以得到v=a/b。又知道c语言是向下取整的,所以我们直接相除得到的是每组数据转化率的最大值,为了满足每组数据都能适用,所以要取最大值里面的最小值为n组数据的最大值。最小值同理。

注意事项:

参考代码:

#include<stdio.h>

int main()

{

int n,i,j;

scanf("%d",&n);

int a[n],b[n];

for(i=1;i<=n;i++)

{scanf("%d%d",&a[i],&b[i]);

}

int ma[n],mi[n];

for(i=1;i<=n;i++)

{

ma[i]=a[i]/b[i];

for(j=ma[i];;j--)

{

if(b[i]==a[i]/j)

{

mi[i]=j;

}

else

{

break;

}

}

}

int max,min;

max=ma[1];

min=mi[1];

for(i=1;i<=n;i++)

{

if(max>ma[i])

{

max=ma[i];

}

if(min<mi[i])

{

min=mi[i];

}

}

 printf("%d %d",min,max);

return 0;

}


点赞(0)
 

0.0分

5 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 2 条评论

微白 8月前 回复TA
@ouwa 编译器版本问题: 某些较旧版本的 Visual C++ 编译器可能不支持 C99 的所有功能,包括变长数组。因此,如果你使用的是较旧的编译器版本,可能会遇到此问题。建议更新到支持 C99 标准的较新版本的编译器。  编译器设置问题: 可能存在某些编译器设置或项目设置将 C 编译器模式设置为不支持变长数组。确保在 VSTIDO 的项目设置中启用了 C99 模式或更高版本的模式。  语言标准问题: 如果你的代码文件扩展名是 .cpp,编译器会将其识别为 C++ 文件,并使用 C++ 标准进行编译。虽然 C++11 引入了可变长度数组的类似功能,但它并不完全相同于 C99 的变长数组。因此,如果你希望使用 C99 的变长数组功能,应该将文件扩展名设置为 .c,以确保编译器按照 C 的标准来编译。
ouwa 8月前 回复TA
为什么可以使用int n,i,j;
scanf("%d",&n);
int a[n],b[n];而在编译器里会出现错误“表达式必须含有常量”呢