zzuli oj 1167逆转数(指针专题)

Description

  任意给你一个整数,这个数可能很大(最长不超过100位),你能求出它的逆转数吗? 
  逆转数定义如下: 
  1.一个末尾没有0的整数,它的逆转数就是各位数字逆序输出; 
  2.一个负数的逆转数仍是负数; 
  3.一个末尾有0的整数,它的逆转数如同下例: 
  reverse (1200) = 2100 
  reverse (-56) = -65 
  要求定义并使用如下函数: 
  void reverse(char *str) 
  { 
  //函数求出str的逆转数并存入str。 
  }

Input

  输入一个长整数str,不超过100位,输入的整数不含前导0。

Output

  输出str的逆转数。输出占一行。

Sample Input

  -123456789000

Sample Output

  -987654321000

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 #include <cstring>
 5 using namespace std;
 6
 7 int main(int argc, char** argv)
 8 {
 9     char str[101];
10     int i,flag=0,count=0;
11     gets(str);
12     /*输出负号*/
13     if(str[0]==‘-‘)
14         printf("-");
15     /*倒序输出*/
16     for(i=strlen(str)-1;i>=1;i--)
17     {
18         if(str[i]==‘0‘&&flag==0)
19         {
20             count++;//用来计数0的个数
21             continue;//跳过
22         }
23         if(str[i]!=‘0‘||flag!=0)
24         {
25             printf("%c",str[i]);
26             flag=1;//标记尾数是否为0
27         }
28
29     }
30     if(str[0]!=‘-‘)
31         printf("%c",str[0]);//最后输出第一个数
32     /*输出前面跳过的0*/
33     for(i=1;i<=count;i++)
34         printf("0");
35     return 0;
36 }
时间: 2024-08-24 15:35:07

zzuli oj 1167逆转数(指针专题)的相关文章

zzuli oj 1105 友好数对

题意描述:输入两个正整数m和n,顺序输出m到n之间的所有友好数对. 如果两个整数的所有正因子之和(包括1,不包括自身)等于对方,就称这对数是友好的.例如:1184和1210是友好数对解题思路:编写函数计算出m-n每个整数的所有正因子之和,然后利用函数算出该因子和的因子和是否等于该数本身,输出原整数与其因子和.代码实现: 1 #include<stdio.h> 2 int facsum(int n) 3 { 4 int i,sum=0; 5 for(i=1;i<n;i++) 6 { 7 i

&lt;26&gt;【了解】10-函数指针概念及定义+【掌握】11-函数指针使用+

[了解]10-函数指针概念及定义 函数指针变量 存放函数的首地址的指针变量就是函数指针变量 函数指针变量的定义 返回值类型 (*变量名)(函数的参数); 函数的声明: int sum(int a,int b);----> 函数指针 int (*p1)(int a,int b); //定义了一个函数指针 p1 //p1可以存放 返回值是int类型,并且有两个形参,形参的类型还都是int类型的函数的地址 //函数指针的初始化 p1 = sum; //sum存的就是函数在内存中的首地址 #includ

逆转数

逆转数 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 8  Solved: 4 [Submit][Status][Web Board] Description 任意给你一个整数,这个数可能很大(最长不超过100位),你能求出它的逆转数吗? 逆转数定义如下: 1.一个末尾没有0的整数,它的逆转数就是各位数字逆序输出: 2.一个负数的逆转数仍是负数: 3.一个末尾有0的整数,它的逆转数如同下例: reverse (1200) = 2100 rever

c指针-专题

六---指针 内存和地址怎么理解呢? 机器中有一些位置,每一个位置被称为[字节]/byte,许多现代机器上,每个字节包含8个位.更大内存单位[字],通常包含2个或4个字节组成. 一个字包含4个字节,它的地址是什么? 他仍然只有一个地址,是最左边还是最右边的那个字节的位置,取决于机器. 机器事实-关于整型的起始位置: 在要求边界对齐(boundaryalignment)的机器上,整型存储的起始位置只能是某些特定的字节,通常是2或4的倍数. 变量名和地址关系? 所有高级语言的特性之一,就是通过名字而

1159 最大的两个数(指针专题)

题目来源:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1159Description 求n个整数中的最大的两个元素.要求定义一个函数LargestTow(),求数组a的最大的两个元素,分别存入形参指针pfirst和psecond所指存储单元,函数原型如下: void LargestTow(int a[],int n,int *pfirst,int *psecond) { /*数组a有n个元素,将数组中的最大值存入形参指针pfirst所指内存单

1160 矩阵的最大值(指针专题)

题目来源:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1160Description 找出一个2×3的整数矩阵中的最大值及其行下标和列下标,要求调用函数FindMax(int p[][3], int m, int n, int *pRow, int *pCol)实现,行下标和列下标在形参中以指针的形式返回. void FindMax(int p[][3], int m, int n, int *pRow, int *pCol){ //在m*n

1161 字符串长度(指针专题)

题目来源:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1161Description编写一函数len,求一个字符串的长度,注意该长度不计空格.要求用字符指针实现.在主函数中输入字符串,调用该len函数后输出其长度. int len(char *sp) { //实现sp所指串的长度,不计空格. } Input输入一个字符串,以回车结束,长度不超过100.Output输出一个整数,单独占一行.Sample InputWhat day is tod

zzuli oj 1134 字符串转换

题目链接: https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1134 Description 输入一个以回车结束的字符串,它由数字和字母组成,请过滤掉所有非数字字符,然后将数字字符串转换成十进制整数后乘以2输出. Input 输入一个以回车结束的字符串,长度不超过100,由数字和字母组成. Output 将转换后的整数乘以2输出,测试数据保证结果在int范围内. Sample Input sg987aa65t498 Sample Output 1

指针专题讲座(王保明)

铁律1:指针是一种数据类型 1)指针也是一种变量,占有内存空间,用来保存内存地址 测试指针变量占有内存空间大小 2)*p操作内存 在指针声明时,*号表示所声明的变量为指针 在指针使用时,*号表示 操作 指针所指向的内存空间中的值 *p相当于通过地址(p变量的值)找到一块内存:然后操作内存 *p放在等号的左边赋值(给内存赋值) *p放在等号的右边取值(从内存获取值) 3)指针变量和它指向的内存块是两个不同的概念 //含义1 给p赋值p=0x1111; 只会改变指针变量值,不会改变所指的内容:p =