c - 在多个数组中查找具有最大偶数位的元素

标签 c arrays

我在查找具有最大偶数位的元素时遇到问题 在一组数组中。我写的代码只接受正数 考虑。所有负值都被完全忽略。

int main() {

 int ary1[] = { 123, 456, -7890, 12 };
 int ary2[] = {-123, 654, 78, 15, 189};
 int ary3[] = {9, 9};
 int ary4[] = {123, 123, 0, 12};
 int ary5[] = {24, 45, -789, 24, 1};
 int ary6[] = {-749, -241, 1, 45};
 int ary7[] = {1, 3, 5};

 digitExtract(ary1, 4);
}

void digitExtract(int Array[], int array_size) {

 int max = Array[0];

 for (int i = 1; i < array_size; i++)
 {
  if (Array[i] > max)
   max = Array[i];
 }

 printf("\nThe largest element is: %d\n", max);
}

我有一个基本思路,就是循环遍历每个元素 并将其变成正数(获取绝对值以便对其进行处理),但我不确定如何 实现代码。

有什么提示或想法吗?

最佳答案

我认为这段代码应该可以满足您的需求。

#include <stdio.h>

void digitExtract(int Array[], int array_size);

int main() {
    int ary1[] = { 123, 456, -7890, 12 };
    int ary2[] = { -123, 654, 78, 15, 189 };
    int ary3[] = { 9, 9 };
    int ary4[] = { 123, 123, 0, 12 };
    int ary5[] = { 24, 45, -789, 24, 1 };
    int ary6[] = { -749, -241, 1, 45 };
    int ary7[] = { 1, 3, 5 };

    digitExtract(ary1, 4);
    digitExtract(ary2, 5);
    digitExtract(ary3, 2);
    digitExtract(ary4, 4);
    digitExtract(ary5, 5);
    digitExtract(ary6, 4);
    digitExtract(ary7, 3);
}

void digitExtract(int Array[], int array_size) {

    int maxDigitNumber;
    int maxDigitFound = -1;
    int tmp;

    for (int i = 0; i < array_size; i++) {
        tmp = Array[i] < 0 ? -Array[i]: Array[i];

        do {
            if (tmp % 2 == 0 && maxDigitFound < (tmp % 10)) {
                maxDigitFound = tmp % 10;
                maxDigitNumber = Array[i];
            }    

            tmp /= 10;
        } while (tmp > 0)
    }

    if (maxDigitFound > -1)
        printf("\nThe largest digit is: %d and the element is: %d\n", maxDigitFound, maxDigitNumber);
    else
        printf("\nThere is not an even number in the array\n");
}

希望对你有帮助

关于c - 在多个数组中查找具有最大偶数位的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30338977/

相关文章:

c - 重定向标准输出时删除了日志文件

objective-c - iPhone 泛洪内存泄漏

ios - 按字母顺序获取联系人

c++ - Shell排序和排序验证

javascript - CoffeeScript:如何从类中返回一个数组?

c - nptl SIGCONT 和线程调度

将int数组(十进制相当于ASCII中的一个字符)转换为C语言中的字符串

javascript - angularJs 形式未正确将对象添加到数组中。 2 路绑定(bind)不起作用

c - 在 C 中安全丢弃可变长度的标准输入字符的正确方法是什么?

php - 在多维数组中搜索键并返回它的路径