新手问两个简单问题

recnaC 2017-09-21 10:50:32
1.
【问题描述】
输入支票代码(正整数)和支票金额(浮点数);按格式要求输出:支票代码占8位,不足8位,则补充前导符‘0’;支票金额以¥开始,并保留两位小数 。
【样例输入】
123456 123.1
【样例输出】
00123456 ¥123.10
【样例说明】
相关知识点:浮点数输出时的精度,宽度和填充字符
我的代码
#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
float b;
int a;
cin>>a>>b;
cout<<setw(8)<<setfill('0')<<a<<endl;
cout<<"¥"<<fixed<<setprecision(2)<<b<<endl;
return 0;
}
可是系统不通过啊 网站上的系统识别的是??123.10

2.
【问题描述】
输入2个十进制整数,分别按照十六进制,十进制,八进制表格式输出。
【样例输入】
12 23
【样例输出】
0xc 12 014
0x17 23 027
【样例说明】
每一项的输出宽度均为8位,左对齐。 相关知识点:整数的基数设置、
前面的0x是怎么出来的(别告诉我说自己输出)
...全文
514 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
recnaC 2017-09-22
  • 打赏
  • 举报
回复
引用 8 楼 pluspplus 的回复:
[quote=引用 7 楼 recnaC 的回复:]
[quote=引用 5 楼 pluspplus 的回复:]
第二个问题,你可以看下文档
http://www.cplusplus.com/reference/ios/ios_base/setf/

// modifying flags with setf/unsetf
#include <iostream> // std::cout, std::ios

int main () {
std::cout.setf ( std::ios::hex, std::ios::basefield ); // set hex as the basefield
std::cout.setf ( std::ios::showbase ); // activate showbase
std::cout << 100 << '\n';
std::cout.unsetf ( std::ios::showbase ); // deactivate showbase
std::cout << 100 << '\n';
return 0;
}


我把你的代码复制了一下。。。刚刚开始学c++可能会有重复的代码但我也不知道怎么调
然后我改了一下 不过还是没有通过啊
我的代码
#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
int a;
int b;
cin>>a>>b;
std::cout.setf ( std::ios::hex, std::ios::basefield ); // set hex as the basefield
std::cout.setf ( std::ios::showbase ); //hex 16 oct 8 dec 10
cout<<setiosflags(ios::left)<<setw(8)<<hex<<a;
cout<<setprecision(2)<<setiosflags(ios::left)<<setw(8)<<dec<<a;
cout<<setprecision(3)<<setiosflags(ios::left)<<setw(8)<<oct<<a<<endl;
std::cout.setf ( std::ios::hex, std::ios::basefield ); // set hex as the basefield
std::cout.setf ( std::ios::showbase ); //hex 16 oct 8 dec 10
cout<<setiosflags(ios::left)<<setw(8)<<hex<<b;
cout<<setprecision(2)<<setiosflags(ios::left)<<setw(8)<<dec<<b;
cout<<setprecision(3)<<setiosflags(ios::left)<<setw(8)<<oct<<b<<endl;
return 0;
}

我的输出结果和期望输出结果是一样的啊 怎么就是不通过呢[/quote]
怎么不一样了呢,这是我运行的结果,12 23

[/quote]

我把截图发下吧 其实我也觉得是对的啊。。

SHA-ZI 2017-09-22
  • 打赏
  • 举报
回复
引用 7 楼 recnaC 的回复:
[quote=引用 5 楼 pluspplus 的回复:]
第二个问题,你可以看下文档
http://www.cplusplus.com/reference/ios/ios_base/setf/

// modifying flags with setf/unsetf
#include <iostream> // std::cout, std::ios

int main () {
std::cout.setf ( std::ios::hex, std::ios::basefield ); // set hex as the basefield
std::cout.setf ( std::ios::showbase ); // activate showbase
std::cout << 100 << '\n';
std::cout.unsetf ( std::ios::showbase ); // deactivate showbase
std::cout << 100 << '\n';
return 0;
}


我把你的代码复制了一下。。。刚刚开始学c++可能会有重复的代码但我也不知道怎么调
然后我改了一下 不过还是没有通过啊
我的代码
#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
int a;
int b;
cin>>a>>b;
std::cout.setf ( std::ios::hex, std::ios::basefield ); // set hex as the basefield
std::cout.setf ( std::ios::showbase ); //hex 16 oct 8 dec 10
cout<<setiosflags(ios::left)<<setw(8)<<hex<<a;
cout<<setprecision(2)<<setiosflags(ios::left)<<setw(8)<<dec<<a;
cout<<setprecision(3)<<setiosflags(ios::left)<<setw(8)<<oct<<a<<endl;
std::cout.setf ( std::ios::hex, std::ios::basefield ); // set hex as the basefield
std::cout.setf ( std::ios::showbase ); //hex 16 oct 8 dec 10
cout<<setiosflags(ios::left)<<setw(8)<<hex<<b;
cout<<setprecision(2)<<setiosflags(ios::left)<<setw(8)<<dec<<b;
cout<<setprecision(3)<<setiosflags(ios::left)<<setw(8)<<oct<<b<<endl;
return 0;
}

我的输出结果和期望输出结果是一样的啊 怎么就是不通过呢[/quote]
怎么不一样了呢,这是我运行的结果,12 23

recnaC 2017-09-22
  • 打赏
  • 举报
回复
引用 5 楼 pluspplus 的回复:
第二个问题,你可以看下文档 http://www.cplusplus.com/reference/ios/ios_base/setf/

// modifying flags with setf/unsetf
#include <iostream>     // std::cout, std::ios

int main () {
  std::cout.setf ( std::ios::hex, std::ios::basefield );  // set hex as the basefield
  std::cout.setf ( std::ios::showbase );                  // activate showbase
  std::cout << 100 << '\n';
  std::cout.unsetf ( std::ios::showbase );                // deactivate showbase
  std::cout << 100 << '\n';
  return 0;
}
我把你的代码复制了一下。。。刚刚开始学c++可能会有重复的代码但我也不知道怎么调 然后我改了一下 不过还是没有通过啊 我的代码
#include <iostream>
#include <iomanip> 
using namespace std;
int main ()
{
	int a;                                     
	int b;
	cin>>a>>b;
	std::cout.setf ( std::ios::hex, std::ios::basefield );  // set hex as the basefield
    std::cout.setf ( std::ios::showbase );       //hex 16 oct 8 dec 10  
    cout<<setiosflags(ios::left)<<setw(8)<<hex<<a;
	cout<<setprecision(2)<<setiosflags(ios::left)<<setw(8)<<dec<<a;
	cout<<setprecision(3)<<setiosflags(ios::left)<<setw(8)<<oct<<a<<endl;  
    std::cout.setf ( std::ios::hex, std::ios::basefield );  // set hex as the basefield
    std::cout.setf ( std::ios::showbase );       //hex 16 oct 8 dec 10  
    cout<<setiosflags(ios::left)<<setw(8)<<hex<<b;
	cout<<setprecision(2)<<setiosflags(ios::left)<<setw(8)<<dec<<b;
	cout<<setprecision(3)<<setiosflags(ios::left)<<setw(8)<<oct<<b<<endl;  
	return 0;
}
我的输出结果和期望输出结果是一样的啊 怎么就是不通过呢
recnaC 2017-09-22
  • 打赏
  • 举报
回复
引用 4 楼 pluspplus 的回复:
第一个问题,符号不属于ANSI字符集里的,所以没法显示的。 你可以改为wcout 宽字符的输出
这个问题解决了 谢谢!
SHA-ZI 2017-09-22
  • 打赏
  • 举报
回复
第二个问题,你可以看下文档 http://www.cplusplus.com/reference/ios/ios_base/setf/

// modifying flags with setf/unsetf
#include <iostream>     // std::cout, std::ios

int main () {
  std::cout.setf ( std::ios::hex, std::ios::basefield );  // set hex as the basefield
  std::cout.setf ( std::ios::showbase );                  // activate showbase
  std::cout << 100 << '\n';
  std::cout.unsetf ( std::ios::showbase );                // deactivate showbase
  std::cout << 100 << '\n';
  return 0;
}
SHA-ZI 2017-09-22
  • 打赏
  • 举报
回复
第一个问题,符号不属于ANSI字符集里的,所以没法显示的。 你可以改为wcout 宽字符的输出
倚栏|听风 2017-09-22
  • 打赏
  • 举报
回复
第一个感觉没啥问题 第二个0x怎么输出? 具体我也不知道啊,不过这就是一个常字符串,直接cout << "0x";不行吗
recnaC 2017-09-22
  • 打赏
  • 举报
回复
急急急急急急急急急急急急急急
recnaC 2017-09-22
  • 打赏
  • 举报
回复
引用 10 楼 pluspplus 的回复:
你试着把最后的endl去掉看下,这种在线测试的通常对格式要求极为严格
哈哈哈是系统错了 已经更正过来了 刚刚是对的 非常感谢你
零隐 2017-09-22
  • 打赏
  • 举报
回复
我这边正常输出。是不是你设置其它东西了。 我这边没有ox。
SHA-ZI 2017-09-22
  • 打赏
  • 举报
回复
你试着把最后的endl去掉看下,这种在线测试的通常对格式要求极为严格
recnaC 2017-09-21
  • 打赏
  • 举报
回复
求回复啊啊啊啊啊 啊啊啊啊啊啊啊

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧