数字排序题,请求bug,运行结果有误

#include<iostream>
#include<stdio.h>
#define MAX 1000
using namespace std;

typedef struct Score
{
	int score;
	int add;
}Score;
Score S[MAX];
int main()
{
	int n;
	while (cin >>n )
	{
		for (int i = 0; i < n; i++)
		{
			int sum = 0;
			cin >> S[i].score;
			int a = S[i].score;
			while (a != 0)
			{
				sum += a % 10;
				a = a / 10;
			}
			S[i].add = sum;
		}
		for (int i = 0; i < n; i++)
		{
			for (int j = i; j < n; j++)
			{
				if (S[i].add < S[j + 1].add)
				{
					Score a = S[j + 1];
					S[j + 1] = S[i];
					S[i] =a;

				}
				else if (S[i].add = S[j + 1].add)
				{
					if (S[i].score > S[j + 1].score)
					{
						Score a= S[j + 1];
						S[j + 1] = S[i];
						S[i] = a;
					}
				}
			}
				
		}
		for (int i = 0; i < n; i++)
			cout << S[i].score << ' '<< S[i].add<<endl;
	}
	return 0;
}

全部评论

相关推荐

粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务