一道C语言编程题,超急!!今晚截至!!望高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/16 21:40:33
创建vector<int>,并用for循环语句向它输入10个整数,最后打印如下结果到屏幕和文件EXP003.OUT: (1)分别用八进制、十进制和十六进制显示这10个整数; (2)按照从小到大的顺序显示这10个整数,并显示这些整数在Vector中的初始位置信息。
注:我的问题主要是负数如何用C表示成八进制和十六进制?还有,怎样显示vector中的初始位置信息?希望是代码解答,不要理论,代码有注解最好,谢谢

#include "iostream"//标准输入输出
#include <vector>//vector头文件
using namespace std;//命名空间
int main()
{
vector<int> vec;
for(int i=0;i<10;++i)
{
int m_a;
cin>>m_a;//输入一个整形到m_a
vector<int>::iterator pos=vec.begin();//指向vec的第一个元素
while(pos!=vec.end())//遍历vec
{
if(m_a<*pos)//如果输入的数小于容器当前位置的值 就将输入的数插入到 此数之前
{
vec.insert(pos,m_a);
break;//跳出while循环 等待下一次输入
}
++pos;//将迭代器指向下一个元素
}
if(pos==vec.end())//如果输入的数比当前容器中所有的数都大时 在容器尾部添加这个数
vec.push_back(m_a);

}
vector<int>::iterator it=vec.begin();
while (it!=vec.end())//输出容器内所有元素
{
printf("八进制%o 十进制%d 十六进制%x \n",*it,*it,*it);
++it;
}

}

绝对 符合你的 题意 希望 给分啊
一会给你加上注释

#include <iostream>
#include <vector>
using namespace std;