c语言编程:有一个这样的数字集合,由n个整数组成。如8 109 20 17 90 62 85,这是一个由7个整数组成的集合。其中5的倍数有20 95 80三个数,这其中90是最大的,所以答案是90。现在输入n和n个整数,请找出其中最大的5的倍数。
1个回答
关注
展开全部
这个问题的解法可以分为以下几个步骤:1. 对于输入的n个数字,逐一判断是否为5的倍数。2. 如果是5的倍数,判断这个数是否比之前找到的最大的5的倍数还大。3. 如果是,那么更新最大的5的倍数为当前这个数。下面是示意代码:```c#include int main() { int n, num, max = -1; scanf("%d", &n); for (int i = 0; i n; i++) { scanf("%d", &num); if (num % 5 == 0 && num > max) { max = num; } } printf("最大的5的倍数为:%d", max); return 0;}```这段代码首先通过`scanf`函数读取了输入数字的总数n,并定义了变量`num`和`max`,分别表示当前读入的数字和目前找到的最大5的倍数。
咨询记录 · 回答于2023-03-25
c语言编程:有一个这样的数字集合,由n个整数组成。如8 109 20 17 90 62 85,这是一个由7个整数组成的集合。其中5的倍数有20 95 80三个数,这其中90是最大的,所以答案是90。现在输入n和n个整数,请找出其中最大的5的倍数。
这个问题的解法可以分为以下几个步骤:1. 对于输入的n个数字,逐一判断是否为5的倍数。2. 如果是5的倍数,判断这个数是否比之前找到的最大的5的倍数还大。3. 如果是,那么更新最大的5的倍数为当前这个数。下面是示意代码:```c#include int main() { int n, num, max = -1; scanf("%d", &n); for (int i = 0; i n; i++) { scanf("%d", &num); if (num % 5 == 0 && num > max) { max = num; } } printf("最大的5的倍数为:%d", max); return 0;}```这段代码首先通过`scanf`函数读取了输入数字的总数n,并定义了变量`num`和`max`,分别表示当前读入的数字和目前找到的最大5的倍数。
请问我的程序哪里错了?
这个程序有两处错误:1. `max v`应该写成`max_v`,中间不能有空格2. `a>=5&&a>max_v&&a%5==0`条件中的`a>=5`和`a>max_v`重复了,可以只保留`a>max_v`以下是修改后的代码:```c++#includeusing namespace std;int main() { int n,a,max_v=0; cin>>n; for(int i=0;i>a; if(a>max_v&&a%5==0) max_v=a; } cout<