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

创建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;
}

}

绝对 符合你的 题意 希望 给分啊
一会给你加上注释
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-03-25
#include <iostream>
#include <vector>
using namespace std;

int main(void)
{
vector<int> v;
float s;
for (int i=0;i <10 ;i++)
{
cout << "输入一个float数:" ;
cin >> s;
v.push_back(s);
}

for (int j = 9;j >= 0;j--)
{
cout << j << "=" << v[j] << endl;
}
return 0;
}
第2个回答  2008-03-25
#include <stdio.h>
#include <stdlib.h>

main ()
{
int i,j,k;
int num[11];
for (i=0;i<10;i++)
scanf ("%d",&num[i]);
for (i=0;i<10;i++)
printf("八进制数为%o 十进制数为%d 十六进制数为%x\n",num[i],num[i],num[i]);
return 0;
}
相似回答
大家正在搜