不上图了,程序顺序和题目对应
1.要注意负数的情况处理
#include<iostream>
using namespace std;
int main()
{
float in;
cin >> in;
int s = in * 10;
int flag=1;
if (s < 0)
{
flag = -flag;
}
s *= flag;
if (flag==1)
{
if ((s % 10) >= 5)
{
cout << (int)in + 1 << endl;
}
else
{
cout << (int)in << endl;
}
}
else
{
if ((s % 10) >= 5)
{
cout << (int)in - 1 << endl;
}
else
{
cout << (int)in << endl;
}
}
return 0;
}
2.使用map和方便
#include <iostream>
#include <map>
using namespace std;
int main()
{
int n;
cin >> n;
map<int, int> m;
for(int i=0; i<n; ++i)
{
int key, value;
cin >> key >> value;
if(m.find(key) == m.end())
m[key] = value;
else
m[key] += value;
}
map<int, int>::iterator beg = m.begin();
for(; beg!=m.end(); ++beg)
cout << beg->first << endl << beg->second << endl;
return 0;
}
3
#include<iostream>
#include<string>
#include<list>
using namespace std;
int main()
{
int a[10]={0};
int n,number=0;
cin>>n;
if(n==0)//如果输入0,输出0
number=0;
else
{
while(n)
{
if(a[n%10]==0)//如果未出现,对应标志a中变为1,同时加到对应数位。
{
a[n%10]++;
number=number*10+n%10;
}
n=n/10;
}
}
cout<<number<<endl;
//system("pause");
return 0;
}