检查 C 中的数组是否对称

2024-01-24

我正在研究一个示例问题,它要求我检查用户输入的数组是否对称。我已经弄清楚如何通过创建另一个数组,以相反的顺序复制第一个数组,然后检查它们是否彼此相等来做到这一点。如下面的代码所示。

#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");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查 C 中的数组是否对称 的相关文章

随机推荐

  • 如何获取应用程序中给定目录中所有文件的文件名 NSArray?

    我想做的事情似乎很简单 在我的应用程序上的给定 目录 中获取文件名数组 但是我越多地使用 NSFileManager 和 NSBundle 我发现自己越迷失 我只想获取在我的 iPhone Xcode 项目中的特定目录中组织的文件的文件名
  • 如何检查项目的 vue.js 版本?

    I use 乌班图16 04我想知道如何检查vue js version我的项目使用的 我怎么做 让我们总结一下 jonrsharpe JamesAMohler 和 MartinCalvert 的解决方案 供寻求快速答案的朋友参考 Run
  • Guice - 使用静态辅助方法将依赖项注入到类中

    我对 Guice 还很陌生 之前没有使用过任何 DI 框架 在阅读了官方 wiki 和许多其他文档后 我仍然无法完全理解它 在我的特定情况下 我想编写一个使用其他 待注入 类的 EL taglib 函数 由于所有 taglib 函数都必须声
  • Ionic 4 标签样式

    我试图为 ionic 4 应用程序中的选项卡提供渐变背景 我还尝试为每个页面设置不同的颜色 渐变 背景 控制每个页面的 scss 中选项卡的样式 想要的效果如下 For
  • 使用 Roslyn 编译 xaml [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有办法使用Roslyn编译器来编译WPF UserControl 假设您想要编译一个包含标准 C
  • Resharper 中的 Jasmine 测试不会停止执行

    我使用 Visual Studio 2012 和 ReSharper 8 2 来测试我的 JavaScript 代码 到目前为止 使用 QUnit 工作得很好 在编写 Jasmine 测试时 当在文件开头添加以下行时 测试不会停止
  • Flexbox 等高不起作用

    我正在尝试将 flexbox 与 susy 一起使用 但不知何故它不起作用 我尝试了我在这里找到的所有问题 但它总是会中断 并且文本容器和图像容器不能保持相同的高度 移动视图从 38 em 开始工作 但不能 这就是我尝试过的 一旦我添加di
  • C++ 阻塞工作队列

    这个问题应该比我上几个简单一点 我在我的程序中实现了以下工作队列 Pool h tpool class It s always closed glasses ifndef POOL H define POOL H class tpool p
  • ImageMagick:此图像格式“”没有解码委托@ error/constitute.c/ReadImage/504

    Problem ImageMagick Convert 无法裁剪图像 看起来它不识别图像类型 我尝试过的 我在网上搜索了一下 发现了几个类似的问题 但不是我的 我尝试过他们的解决方案 包括 通过brew卸载并重新安装ImageMagick
  • 在Java中使用“instanceof”[重复]

    这个问题在这里已经有答案了 instanceof 运算符的用途是什么 https stackoverflow com questions 7313559 what is the instanceof operator used for 我了
  • 不同处理器上的浮点计算是否会有所不同? (+在 C# 和 C 之间传递双精度数)

    我有一个用 C 编写的应用程序 它也调用一些 C 代码 C 代码获取一些双精度值作为输入 对其执行一些计算 将其传递到本机层 由本机层对其执行自己的计算 然后传回 C 层 如果我在不同的机器上运行相同的exe dll 它们都是Intel的x
  • 从 gradle 中的多个依赖项中排除同一组?

    我的 Android 项目的应用程序模块的 build gradle 中有以下代码 implementation com google firebase firebase core 16 0 1 exclude group com andr
  • XCode 4,签名无效 (-19011)

    我要疯了 我正在使用 XCode 4 最后我完成了我的应用程序 我正准备将其提交到 App Store 上传到 iTunes Connect 我尝试构建存档 但出现了此警告 Application failed codesign verif
  • cx_freeze 错误:找不到模块 tkinter

    我开始遇到一些 miniconda 和 PyCharm 问题 所以我不得不重新安装它们 但是 现在当我使用 cx freeze 创建 exe 时 出现以下错误 这是我的代码 from tkinter import from tkinter
  • 为什么 32 位处理器只能寻址 4GiB 内存,即使字大小很大?

    Until now I thought that a 32 bit processor can use 4 GiB of memory because 232 is 4 GiB but this approach means process
  • 如何查找 Word 段落的页码?

    我正在尝试解析 Word 文档 并且我要查找的信息应仅位于第一页 有没有办法获取段落的页码 foreach Word Paragraph p in document Paragraphs pageNo if pageNo 1 p Range
  • 如何在 Spring Batch 中使用 Hsqldb 解决此 SQLTransactionRollbackException?

    我正在开发一个需要定期执行作业的 Spring Batch 应用程序 这是我的配置文件的一个片段 它设置用于事务处理的内存 hsqldb 数据库 Bean public SimpleJobLauncher simpleJobLauncher
  • 删除 Primefaces 组件中的所有样式?

    是否可以从 Primefaces 组件中删除所有样式 我的意思是 组件集很好 但必须手动覆盖每个组件的每一点以使组件样式适合我的应用程序的整体设计 这并不好 我不能花几个小时使用 Firebug 来查找它使用哪些类等等等 那么有没有办法删除
  • 应用动态实施

    我正在尝试将 Appdynamics 添加到我的应用程序中 我正在执行以下步骤 https docs appdynamics com display PRO40 Instrument an Android Application Instr
  • 检查 C 中的数组是否对称

    我正在研究一个示例问题 它要求我检查用户输入的数组是否对称 我已经弄清楚如何通过创建另一个数组 以相反的顺序复制第一个数组 然后检查它们是否彼此相等来做到这一点 如下面的代码所示 include