c语言-C,c++数制转换问题,为什么提交不了

问题描述

C,c++数制转换问题,为什么提交不了

问题描述
  给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
  输入的第一行为一个正整数n (1<=n<=10)。
  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
  输出n行,每行为输入对应的八进制正整数。
注意
  输入的十六进制数不会有前导0,比如012A。
  输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
提示
  先将十六进制数转换成某进制数,再由某进制数转换成八进制。

#include"stdio.h"
int main()
{
int n,a[20];
int i;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%x",&a[i]);
for(i=1;i<=n;i++)

printf("%o
",a[i]);
return 0;
}

解决方案

数制转换问题:skew

解决方案二:

你的n不能大于10,但是在线测试的时候,不一定用例小于10

解决方案三:

数组下标从0到9,for循环应该是i = 0; i < n; i++

解决方案四:

#include "stdafx.h"
#include

using namespace std;
const int Size = 3;//定义符号常量,可以将3改为你的20
int _tmain(int argc, _TCHAR* argv[])
{
int arr[Size];
cin >> hex; //将输入的整数解释为十六进制
for (int i = 0; i < Size; i++)
cin >> arr[i];
cout << oct; //输出八进制
for (int j = 0; j < Size; j++)
cout << arr[j] << endl;
return 0;
}

测试数据:

时间: 2024-12-30 23:41:22

c语言-C,c++数制转换问题,为什么提交不了的相关文章

struct-c语言用栈做的数制转换,为什么输出不对啊,总是4206655,还停不下来

问题描述 c语言用栈做的数制转换,为什么输出不对啊,总是4206655,还停不下来 #include"stdio.h" #include"stdlib.h" #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 #define NULL 0 #define OK 1 #define ERROR 0 #define OVERFLOW -2 #define TRUE 1 #define FALSE 0 typedef

python常见数制转换实例分析

  这篇文章主要介绍了python常见数制转换,实例分析了二进制.八进制.十进制及十六进制之间的相互转换技巧,需要的朋友可以参考下 1.进位制度 Python中二进制是以0b开头的: 例如: 0b11 则表示十进制的3 8进制是以0开头的: 例如: 011则表示十进制的9 16进制是以0x开头的: 例如: 0x11则表示十进制的17 或者写成 x b 2.各种函数转换 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

c语言-C语言递归的数字转换问题,习题求解

问题描述 C语言递归的数字转换问题,习题求解 C语言使用递归算法将一个正整数字符串为对应的数值.不得使用循环 解决方案 c语言没有默认参数吧,改为: #include <stdio.h> int fun(char *p,int m) { int n=1; if(*p) { n=m*10+*p-'0'; return fun(p+1,n); } return m; } void main() { char str[]="1234"; printf("%d "

这个c语言指针为什么不能转换啊,求解释。

问题描述 这个c语言指针为什么不能转换啊,求解释. #include #include typedef int QElemType; typedef int Status; typedef struct QNode { QElemType data; struct Qnode next; }QNode,*QueuePtr; typedef struct { QueuePtr front; QueuePtr rear; }LinkQueue; Status InitQueue(LinkQueue

VB6.0语言中关于布尔表达式转换成字符串的问题

问题描述 VB6.0语言中关于布尔表达式转换成字符串的问题 VB6.0语言数据库里存储的布尔表达式怎么以结果的形式拿到值,或者字符串转换为表达式的运算 解决方案 你可以用scripthost去执行你的表达式,得到结果

数据结构实践——数制转换(栈)

本文是针对数据结构基础系列网络课程(3):栈和队列的实现项目. [项目 - 数制转换] 把十进制的整数转换为任一进制数输出.请利用栈设计算法,并实现程序. 提示:要转换为r进制,则原来的数逐次除以基数r(除完之后用商再除),直到商为0,得到的一系列余数的逆序就是转换结果.这里的"逆序",意味着后产生的余数,会先输出,后进先出,栈的机会来了-- [参考解答] 解法:头文件sqstack.h请见[顺序栈算法库],使用链栈也可以. #include <stdio.h> #incl

C语言实现字母大小写转换的方法_C 语言

本文实例讲述了C语言实现字母大小写转换的方法.分享给大家供大家参考.具体实现方法如下: /* * 将大写字母转换为小写字母 */ #include <stdio.h> int lower(int c) { return ((c>='A')&&(c<='z'))?(c+'a'-'A'):(c); } main() { int i; char a[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; for(i=0;i<26;i++)

c语言-C语言中的指针转换问题

问题描述 C语言中的指针转换问题 代码如下 # include<stdio.h> int main() { unsigned int a = 0xfffffff7 ; unsigned char i = (unsigned char)a ; char *b = (char *)&a ;//让b指向a的地址 printf ("%x, %x ", i, *b) ;//不懂:*b应该是char类型的,为什么结果会是4个字节? printf ("%08x, %08

浅谈c语言中类型隐性转换的坑_C 语言

谨记:在C语言中,当两种不同类型之间运算时,低字节长度类型会向高自己长度类型转换,有符号会向无符号类型转换. 举例子如下: #include <stdio.h> void func(void) { int i = 1; unsigned char c1 = 1; signed char c2 = -1; if (c2 > i){ printf("\r\n -1 > 1"); } else{ printf("\r\n -1 <= 1");