检查C中的数组是否对称

克里斯托弗

我正在研究一个示例问题,它要求我检查用户输入的数组是否对称。我已经找到了解决方法,方法是创建另一个数组,以相反的顺序复制第一个数组,然后检查它们是否相等。如以下代码所示。

#include <stdio.h>

int main(void){

#define NUM_ELEMENTS 12
int userArray[NUM_ELEMENTS];
int userArray2[NUM_ELEMENTS];
int i;
int tempVal = 0;
double sumArray = 0;
double aveArray = 0;


printf("Enter 12 interger numbers (each one separated by a space):\n");
for(i = 0; i < NUM_ELEMENTS; i++){
    scanf_s("%d", &userArray[i]);
}

for(i = 0; i < NUM_ELEMENTS; i++){
    sumArray = sumArray + userArray[i];
}

aveArray = sumArray/NUM_ELEMENTS;

printf("\nAverage of all data points is %.2lf \n",aveArray);
printf("\nAn array in reverse order:\n");

for(i = NUM_ELEMENTS - 1; i >= 0; i--){
    printf("%d ",userArray[i]);
}
printf("\n");

//Used swap values in the array
for(i = 0; i < (NUM_ELEMENTS / 2); i++){
    tempVal = userArray[i];
    userArray2[i] = userArray[NUM_ELEMENTS - 1- i];
    userArray2[NUM_ELEMENTS - 1 - i] = tempVal;
}
if(userArray[i] == userArray2[i])
    printf("\nThis array is symmetric\n");
else
    printf("\nThis array is NOT symmetric\n");

    return 0;
}

因此,如果用户输入1 2 3 4 5 6 6 5 4 3 2 1,则程序将返回该数组是对称的。

我很好奇,是否有更简单的方法可以做到这一点?

战争艺术

只需同时向前和向后迭代即可:

// i iterates forwards from the start
// j iterates backwards from the end
// once they pass each other, we're done.
for (int i = 0, j = NUM_ELEMENTS - 1; i < j; i++, j--) {
    if (userArray[i] != userArray[j]) {
        printf("\nThis array is not symmetric\n");
        return 0;  // No point in running this function any longer at this point.
    }
}

// If the function didn't return in the for loop, the array is symmetrical.
printf("\nThis array is symmetric\n");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检查haskell中的关系是否对称

来自分类Dev

检查字符串中的数字是否对称(在边缘)

来自分类Dev

如何检查数组在C#中的ListBox中是否存在

来自分类Dev

检查数组中是否存在

来自分类Dev

检查数组C#中是否存在int

来自分类Dev

被调用的函数是否应该始终检查C中的数组大小?

来自分类Dev

C ++如何检查对象是否在数组中?

来自分类Dev

检查2D数组中是否存在元素C ++

来自分类Dev

如何检查指针数组中是否设置了C ++对象指针

来自分类Dev

C#检查数组的插槽中是否填充了类对象

来自分类Dev

检查数字是否包含在字典数组 C# 中

来自分类Dev

如何检查c#中是否包含数组?

来自分类Dev

检查数组中是否存在数组?

来自分类Dev

检查数组中是否存在数组

来自分类Dev

如何检查数组是否是 JScript 中的数组?

来自分类Dev

检查变量是否在ruby中的数组中

来自分类Dev

coffeescript检查是否不在数组中

来自分类Dev

如何检查数组中的数字是否相等?

来自分类Dev

检查数组中是否存在元素

来自分类Dev

检查元素是否在数组中

来自分类Dev

检查数组是否在D中包含元素

来自分类Dev

如何检查数组中是否存在空集?

来自分类Dev

检查Postgres数组中是否存在NULL

来自分类Dev

检查数组中的值是否大于零

来自分类Dev

检查数组中是否存在函数

来自分类Dev

检查数组中的值是否已定义

来自分类Dev

检查数组是否在angularjs中包含值

来自分类Dev

检查结构是否在数组中

来自分类Dev

想要检查数组中是否存在变量