模拟
n
个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用
A
、
B
、
C
、
D
表示,当选某候选人时,直接输入其编号
(
编号由计算机随机产生
)
,若输入的不是
A
、
B
、
C
、
D
则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。
printf(" 请输入参加投票的人数 n 的值 :")
printf(" 请输入参加投票的人数 n 的值 :")
int n = 0, countA = 0, countB = 0, countC = 0, countD = 0;
scanf("%d", &n);
int array[100000] = {0};
for (int i = 0; i < n; i++) {
array[i] = arc4random() % 4 + 65;
printf("%c\t", array[i]);
if (array[i] == 'A') {
countA++;
}else if (array[i] == 'B'){
countB++;
}else if (array[i] == 'C'){
countC++;
}else if (array[i] == 'D'){
countD++;
}
}
int result[4] = {countA, countB, countC, countD};
char result1[4] = "ABCD";
for (int i = 0; i < 4 - 1; i++) {
// 内层循环控制每趟比较的次数
// 趟数增多 , 比较次数越来越少
for (int j = 0; j < 4 - 1 -i; j++) {
// 如果前一个数比后一个数小 , 则交换
if (result[j] < result[j + 1]) {
int temp = result[j];
int temp1 = result1[j];
result[j] = result[j + 1];
result1[j] = result1[j + 1];
result[j + 1] = temp;
result1[j + 1] = temp1;
}
}
}
for (int i = 0; i < 4; i++) {
printf("\n 第 %d 名 count%c = %d", i+1, result1[i], result[i]);
}
for (int i = 0; i < n; i++) {
array[i] = arc4random() % 4 + 65;
printf("%c\t", array[i]);
if (array[i] == 'A') {
countA++;
}else if (array[i] == 'B'){
countB++;
}else if (array[i] == 'C'){
countC++;
}else if (array[i] == 'D'){
countD++;
}
}
int result[4] = {countA, countB, countC, countD};
char result1[4] = "ABCD";
for (int i = 0; i < 4 - 1; i++) {
// 内层循环控制每趟比较的次数
// 趟数增多 , 比较次数越来越少
for (int j = 0; j < 4 - 1 -i; j++) {
// 如果前一个数比后一个数小 , 则交换
if (result[j] < result[j + 1]) {
int temp = result[j];
int temp1 = result1[j];
result[j] = result[j + 1];
result1[j] = result1[j + 1];
result[j + 1] = temp;
result1[j + 1] = temp1;
}
}
}
for (int i = 0; i < 4; i++) {
printf("\n 第 %d 名 count%c = %d", i+1, result1[i], result[i]);
}