输出怎么是这样的,有没有人告诉我%7.2f是什么意思吗

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/811283523086157.jpg "#left"有没有人告诉我%7.2f是什么意思吗

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/706479
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:前端Img使用图片跨域问题是怎么引起的?该如何解决呢?
  • 除此之外, 这篇博客: 实验二各种有趣的排序(2.3猴子排序,2.4算珠排序,2.5面条排序)中的 代码勘误:!!! 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    **
    //修改了原来的写法,增加了几个判断;又增加了一种新的写法;感谢勘误

    #include<iostream>
    #define N 10
    using std::cout;
    using std::cin;
    using std::endl;
    
    int aba[N][N] = {0};
    int large ;
    void swap(int *a, int *b)
    {
    	int temp;
    	temp = *a;
    	*a = *b;
    	*b = temp;
    
    }
    void input_data(int num[])
    {
    	int i = 0;
    	char ch;
    	do
    	{
    		cin >> num[i];
    		ch = cin.get();
    		i++;
    	} while (ch != '\n');
    	large = i;
    }
    int main()
    {
    	int count = 0;
    	int num[N];
    	input_data(num);
    	//二维数组赋值
    	for (int i = 0; i < large; i++)
    	{
    		for (int j = 0; j < num[i]; j++)
    		{
    			aba[i][j] = 1;
    		}
    	}
    	//输出二维数组
    	//for (int i = 0; i < large; i++)
    	//{
    	//	for (int j = 0; j < N; j++)
    	//		cout << aba[i][j];
    	//	cout << endl;
    	//}
    	//cout << endl;
    	
    	int p = 0;				//修改了原来的写法
    	for (int j = 0; j < N; j++)
    	{
    		for (int i = large-1,p=0; p<=i; i--,p++)
    		{
    			while (aba[p][j] == 0)
    			{
    				if (i == p)			//先判断
    					break;
    				p++;
    				
    			}
    			while (aba[i][j] == 1)
    			{
    				if (i == p)			//先判断
    					break;
    				i--;
    				
    			}
    			for (;aba[i][j] == 0 && aba[p][j] == 1;)
    			{
    				swap(&aba[i][j],&aba[p][j]);
    				if (i == p || p+1==i )//增加判断
    					break;
    				p++;
    				i--;
    			}
    			
    		}
    	}
    	//更新一种写法
    	/*int i = 0;
    	for (int j = 0; j < N; j++)
    	{
    		int n = 0;				//n是一排算珠的个数
    		for (; i < large; i++)
    		{
    			if (aba[i][j] == 1)
    				n++;
    		}
    		n -= 1;
    		for (i = large - 1; i >= 0 && n >= 0; i--, n--)//从下到上给算珠付n个值
    		{
    			aba[i][j] = 1;
    		}
    		for (; i >= 0; i--)//上面的付为0
    		{
    			aba[i][j] = 0;
    		}
    
    	}*/
    //输出二维代码
    	//for (int i = 0; i < large; i++)
    	//{
    	//	for (int j = 0; j < N; j++)
    	//		cout << aba[i][j];
    	//	cout << endl;
    	//}
    	for (int i = 0; i < large; i++)
    	{
    		for (int j = 0; j < 20; j++)
    		{
    			if (aba[i][j] == 0)
    				break;
    			if(aba[i][j] == 1)
    				count++;
    		}
    		num[i] = count;
    		count = 0;
    	}
    	cout << endl;
    	for (int i = 0; i < large; i++)
    		cout << num[i]<<"  ";
    }
    

    2.5 面条排序
    如果桌子上有一把长短不一的面条,此时你将面条立起来,下端平放在桌面上,此时你用手掌在空中从上往下缓慢移动,慢慢的,你的手掌触碰到了一根面条(这根面条是最高的),你将这根面条抽走(抽走的面条当然想怎么吃就怎么吃),手继续慢慢向下移动,这时,你又碰到了倒数第二高的面条,你又将其抽走,。。。。
    算法中,我们用一个数模拟手,每次-1,为了不至于手掌无处安放,我们将手直接放在最高的面条的顶端。
    请你用代码实现这个算法吧。

    最后一个没给啥东西,我还理解错题目了(丢人(lll¬ω¬)),我以为是挑出最大值,然后放到最后一个,这不就是选择排序么???
    但其实这道题就是手每次向下挪一位,然后看看有木有面条~
    十分短小的代码

    #include<iostream>
    #include<algorithm>//头文件
    using namespace std;
    int main()
    {
    	int num[6] = { 6,5,4,3,2,1 };
    	int tmp[6] = { 0 };
    	int large = *max_element(num,num+6);//找最大值
    	for (int j = 5; j >= 0; j--)
    	{
    		for (int i = 0; i < 6; i++)
    			if (num[i] == large)//摸到面条
    			{
    				tmp[j] = num[i];
    				num[i] = 0;
    			}
    		large--;//手向下挪
    	}
    	for (int i = 0; i < 6; i++)
    		cout << tmp[i];
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
...
for (i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
sum+= a[i];
}
...