所以,我正在编写一个代码,它创建一个数组,其中包含用户编写的元素和元素数量,然后代码生成一个最大值为零的最大值。所以,我完成了编写一个数组的步骤,该数组是用户输入的元素。最难的部分(对我来说)是完成一个代码,生成最大值为零的最大值。所以,是的,我需要一个建议来完成这段代码。谢谢。
例如:
数组 - 2 20 25 300 55555
最后一位数为零的最大数字是300
所以是的,我需要一个建议来完成这段代码。这是我到目前为止所做的代码:
#include "stdafx.h"
#include <stdlib.h>
#include <windows.h>
#include <time.h>
int GetAmount() {
int howmany;
printf("Enter amount of elements - ");
scanf_s("%i", &howmany);
return howmany;
}
void GetArray(int a[], int n) {
printf("Enter elements - \n");
for (int i = 0; i < n; i++)
{ printf("%i ->", i);
scanf_s("%i", &a[i]);
}
}
int LastDigitZero(int n[], int a) {
for (int i = 0; i < a; i++)
{
if (n[i] % 10 == 0) {
return 0;
}
}
}
int maxvalue(int a[], int n) {
int temp = 0;
for (int i = 0; i < n; i++)
{
if (a[i] > temp) {
temp = a[i];
}
}
return temp;
}
void main() {
int amount = GetAmount();
int array[100];
GetArray(array, amount);
int max = maxvalue(array, amount);
printf("Max Value is %i\n", max);
}
感谢您的关注,祝您有个愉快的一天! :)
答案 0 :(得分:1)
有效!这看起来如何!
#include "stdafx.h"
#include <stdlib.h>
#include <windows.h>
#include <time.h>
int GetAmount() {
int howmany;
printf("Enter amount of elements - ");
scanf_s("%i", &howmany);
return howmany;
}
void GetArray(int a[], int n) {
printf("Enter elements - \n");
for (int i = 0; i < n; i++)
{ printf("%i ->", i);
scanf_s("%i", &a[i]);
}
}
int maxvalue(int a[], int n) {
int temp = 0;
for (int i = 0; i < n; i++)
{
if (a[i] % 10 == 0 && a[i] > temp) {
temp = a[i];
}
}
return temp;
}
void main() {
int amount = GetAmount();
int array[100];
GetArray(array, amount);
int max = maxvalue(array, amount);
printf("The biggest number which last digit is zero is %i\n ", max);
system("pause");
}
谢谢你们的答案!那很快!!! :)
答案 1 :(得分:0)
你几乎拥有它。首先,以0 mod 10结尾的任何数字都是0,这样就可以检查最后一位数是否为0.使用它可以将maxvalue()
更改为
int maxvalue(int a[], int n) {
int temp = a[0];
for (int i = 1; i < n; i++)
{
if (a[i] % 10 == 0 && a[i] > temp) {
temp = a[i];
}
}
return temp;
}
我还做了一个更改,将temp设置为a[0]
的值,好像你的数组都是负数,然后0就是最大数。由于temp
已经a[0]
,我们可以在1开始for循环。
答案 2 :(得分:0)
你应该检查是否有解决方案,在这个例子中你可以检查maxValue返回的值是否结束0(如果没有任何值结束0然后它将返回[0]):
int maxValue(int a[], int n) {
int temp= a[0]
for (int i(1); i<n;i++) {
if (a[i] % 10 == 0 && (temp % 10 != 0 || a[i] > temp )) temp = a[i];
}
return temp;
}