C语言数组反转

C语言数组反转一个C语言程序代码,反转数组。题目:编写一个函数,实现传入的整型数据各位数字的逆序重排,比如:传入1278,函数返回值为8721;传入-257,函数返回值为-752;传入510,函数返回值为15。#include<stdio.h>#include<stdlib.h>#include<math.h>#definemaxArraySize100//定义数组最大长度,防止输入的整型数据超出int表示的范围intinverseIntAr

大家好,又见面了,我是你们的朋友全栈君。

一个C语言程序代码,反转数组。
题目:编写一个函数,实现传入的整型数据各位数字的逆序重排,比如: 传入 1278,函数返回值为 8721;传入-257,函数返回值为-752;传入 510,函数返回值为 15。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define maxArraySize 100 //定义数组最大长度,防止输入的整型数据超出int表示的范围

int inverseIntArray(int inputArray[maxArraySize], int length);  //声明逆序函数

int main()
{ 
   
    int i;
    int temp;  //定义一个中间变量
    int sign;  //定义正负数的标志
    int digit;  //定义传入整数的位数
    int remainder;
    int result;
    int inputNumber;  //定义输入的整数
    int integerArray[maxArraySize];  //定义将输入整数转换为的整型数组

    printf("请输入你要传入的整型数据:");
    scanf("%d", &inputNumber);

    if(inputNumber<0)  //判断如果是复数就做标记后将复数取为相反数
    { 
   
        sign = 1;
        inputNumber = -inputNumber;
    }

    temp = inputNumber;
    for(digit=0;temp>=1;digit++)  //循环求输入整数的位数
    { 
   
        temp = temp/10;
    }

    temp = inputNumber;
    for(i=0;i<digit;i++)  //将输入的整型数据转换为整型数组
    { 
   
        remainder = temp%10;  //取余获取每一位的数的大小
        integerArray[digit-i-1] = remainder;
        temp = temp/10;
    }

    result = inverseIntArray(integerArray,digit);  //调用逆序排列函数
    if(sign==1)
    { 
   
        printf("\n逆序排列后的结果为:-%d",result);  //输入为负数输出添负号
    }
    else
    { 
   
     printf("\n逆序排列后的结果为:%d",result);  //输入为正数
    }

}
int inverseIntArray(int inputArray[maxArraySize], int length)
{ 
   
    int i = 0;
    double temp;  //定义一个中间变量防止精度损失
    int outputArray[maxArraySize];
    int outputNumber = 0;

    for(i=length-1;i>=0;i--)  //将输入的整型数组逆序排列
    { 
   
        outputArray[length-1-i] = inputArray[i];
    }

    for(i=0;i<length;i++)  //将逆序排列后的数组转换为整型数
    { 
   
        temp = pow(10.0,(length-i-1));  //pow()函数的参数和返回值都为double类型,如果传入int会出现精度损失
        outputNumber = outputNumber + outputArray[i]*((int)temp);  //3位数时会出现输出减一的情况就是因为损失了精度
    }

    return outputNumber;
}

结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134193.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux 文本编辑器vi常用命令

    linux 文本编辑器vi常用命令linux之文本编辑器vi常用命令由于经常在linux下面文本操作,所以这里稍微系统的总结一下自己常用的vi命令1、打开命令:vi+filename(还有各种打开的姿势,只不过我比较顺手这个)2、退出命令::q退出而且不保存修改的内容:q!强制退出不保存修改的内容:wq退出并且保存修改的内容:wq!强制保存修改的内容然后退出(修改了只读文件会用到)ZZ退出并且保存修改的内容,相当于:wq,看个人习惯3、光标移动命令个人比较喜欢上下左右方向键,字母h(左),j

    2022年7月26日
    3
  • 一文览尽ToF深度相机技术

    一文览尽ToF深度相机技术点击上方“3D视觉工坊”,选择“星标”干货第一时间送达摘要:现行专业级或消费级的3D相机所采用的三角法(Triangulation)和飞时法(Time-of-Flight,ToF),现因…

    2022年5月25日
    47
  • 奇怪的电梯

    奇怪的电梯奇怪的电梯【问题描述】某栋大楼有一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第i层楼(1≤i<N)上有一个数字K(≤K≤N)电梯只有四个按钮:开、关、上、下。上、下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:33125代表了Ki(K1=3,K2=3,…),从一层开始。在一层按“上”可以到4层,按“下”是不起作用的,因为没有-2层。那么从A层到B层至少要按几次按钮呢?【输入格式】第1行为3个用1个空格隔开的正整数,表示N、A、B(l≤N≤200,1≤

    2022年6月14日
    33
  • java中数组的最大下标是_c语言中数组下标从几开始

    java中数组的最大下标是_c语言中数组下标从几开始packagepractice;publicclassExtremeValueAndIndex{ publicstaticvoidmain(String[]args){ intnumberArr[]={7,3,5,1,8,4}; intmax=numberArr[0],min=numberArr[0]; intmaxIndex=0,minIndex=0; for(inti=1;i<numberArr.

    2022年10月11日
    0
  • vue环境安装与配置(Linux安装常用开发工具)

    vue安装环境搭建提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录vue安装环境搭建前言一、node.js安装和配置1.下载安装node.js2.配置默认安装目录和缓存日志目录3.node.js环境配置4.配置淘宝镜像源二、使用步骤1.引入库2.读入数据总结前言vue前端框架的环境搭建一、node.js安装和配置1.下载安装node.js官网下载最新版本:https://nodejs.org/en/download/可以下载安装包(安装教程见:http

    2022年4月18日
    67
  • Linux Bash漏洞修复

    Linux Bash漏洞修复特别提醒:Linux官方已经给出最新解决方案,已经解决被绕过的bug,建议您尽快重新完成漏洞修补。openSUSE镜像已经给出修复方案了。【已确认被成功利用的软件及系统】所有安装GNUbash版本小于或者等于4.3的Linux操作系统。【漏洞描述】该漏洞源于你调用的bashshell之前创建的特殊的环境变量,这些变量可以包含代码,同时会被bash执行。【漏洞检测方法】漏洞检测命令:env-iX='(){(a)=>\’bash…

    2025年7月23日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号