c语言洛谷1781宇宙总统
时间: 2023-12-21 17:30:47 浏览: 38
根据提供的引用内容,C语言洛谷1781宇宙总统问题的解法如下:
```c
#include <stdio.h>
#include <string.h>
#define MAX_N 1005
char name[MAX_N][105];
int vote[MAX_N];
int main() {
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%s", name[i]);
for (int j = 0; j < strlen(name[i]); j++) {
vote[i] += name[i][j];
}
}
int max_vote = 0, max_index = 1;
for (int i = 1; i <= n; i++) {
if (vote[i] > max_vote) {
max_vote = vote[i];
max_index = i;
}
}
printf("%s\n", name[max_index]);
return 0;
}
```
该程序的思路是:首先读入候选人的名字,然后计算每个候选人名字中每个字符的ASCII码之和作为该候选人的得票数,最后找到得票数最高的候选人并输出其名字。
相关问题
c语言洛谷p1059
洛谷p1059是一个关于桶排的C语言题目。下面是一个简单的桶排的示例代码:
```c
#include <stdio.h>
int main(void) {
int i, j, n, t, count, book[1001];
// 初始化桶数组
for (i = 0; i <= 1000; i++) {
book[i] = 0;
}
// 输入n和n个数,并统计每个数的出现次数
scanf("%d", &n);
for (i = 1; i <= n; i++) {
scanf("%d", &t);
book[t]++;
}
count = 0;
// 统计不同的数的个数
for (i = 0; i <= 1000; i++) {
if (book[i] > 0) {
count++;
}
}
// 输出不同的数的个数
printf("%d\n", count);
// 输出不同的数
for (i = 0; i <= 1000; i++) {
if (book[i] > 0) {
printf("%d ", i);
}
}
getchar();
getchar();
return 0;
}
```
这段代码首先初始化了一个大小为1001的桶数组,然后通过循环输入n和n个数,并统计每个数的出现次数。接着,通过遍历桶数组,统计不同的数的个数,并输出。最后,再次遍历桶数组,输出不同的数。
c语言洛谷b2097
根据提供的两个引用,我们可以看出这是两个不同的C语言程序,分别用于解决洛谷上的B2097题目。这道题目的要求是找到一个数列中最长的连续相同的数的个数。
下面是第一个程序的解释:
```c
#include<stdio.h>
int main() {
int x[200],y[200];
int n,i,max=0;//初始化max
scanf("%d",&n);
for(i=1;i<=n;i++) {
scanf("%d",&x[i]);
if(x[i]==x[i-1]) y[i]=y[i-1]+1;//核心,和前一项相关
else y[i]=1;//如果不是,归一
if(y[i]>max) max=y[i];//更新数据
}
printf("%d",max);
return 0;
}
```
这个程序的思路是,首先读入一个长度为n的数列,然后遍历这个数列,如果当前数和前一个数相同,则将当前数的计数器加1,否则将当前数的计数器归一。在遍历的过程中,记录下最大的计数器值,即为最长的连续相同的数的个数。最后输出这个最大值即可。
下面是第二个程序的解释:
```c
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<stdbool.h>
int main(){
int pro,next,n,sum=1,max;
int i;
scanf("%d",&n);
scanf("%d",&pro);
max=1;
for(i=1;i<n;i++){
scanf("%d",&next);
if(next==pro){
sum++;
if(max<sum){
max=sum;
}
pro=next;
}
else{
pro=next;
sum=1;
}
}
printf("%d\n",max);
return 0;
}
```
这个程序的思路是,首先读入一个长度为n的数列,然后遍历这个数列,如果当前数和前一个数相同,则将当前数的计数器加1,否则将当前数的计数器归一。在遍历的过程中,记录下最大的计数器值,即为最长的连续相同的数的个数。最后输出这个最大值即可。