|
楼主 |
发表于 2020-8-10 13:44:41
|
显示全部楼层
#include<stdio.h>
#include <string.h>
#define num 4
struct name
{
char name[255];
};
struct check
{
char name[255];
};
int main()
{
struct name n[4] = { {"钟"}, {"白玉"}, {"我"}, {"心心"}, };
struct check f[4];
int i, j = 0;
int md = 0;
int b = 1;
int g = 1;
int h[4];//积分
for ( i = 0; i < 4; i++)
{
h[i] = 0;
}
puts("欢迎进入憨憨系统\n");
printf("候选人有%s %s %s %s\n",n[0].name,n[1].name,n[2].name,n[3].name);
for (i = 0; i < 4; i++)
{
do
{
printf("第%d次投票=", i + 1);
scanf_s("%s", f[i].name, 20);
if (strcmp(f[i].name, n[0].name) != 0 && strcmp(f[i].name, n[1].name) != 0 && strcmp(f[i].name, n[2].name) != 0 && strcmp(f[i].name, n[3].name) != 0)
{
printf("\n错误 请重新输入\n");
md++;
}
switch (md)
{
case 3:printf("\n----没意思了哈----\n"); break;
case 5:printf("\n----再来?----\n"); break;
case 6:printf("\n----去死!!!----\n");
case 8:return 0;
}
} while (strcmp(f[i].name, n[0].name) != 0&& strcmp(f[i].name, n[1].name) != 0&& strcmp(f[i].name, n[2].name) != 0&& strcmp(f[i].name, n[3].name) != 0);
for (j = 0; j < 4; j++)
{
if (strcmp(f[i].name, n[j].name) == 0) //strcmp() 会根据 ASCII 编码依次比较 str1 和 str2 的每一个字符,直到出现不到的字符,或者到达字符串末尾(遇见\0)。 必须使用#include<string.h>
{ //返回值:
//如果返回值 < 0,则表示 str1 小于 str2。
//如果返回值 > 0,则表示 str2 小于 str1。
//如果返回值 = 0,则表示 str1 等于 str2
if (j == 0) h[0] = h[0] + 1;
if (j == 1) h[1] = h[1] + 1;
if (j == 2) h[2] = h[2] + 1;
if (j == 3) h[3] = h[3] + 1;
}
}
}
int max=0;
max = h[0];
for ( i = 0; i < 4; i++)
{
if (h[i] > max)
max = h[i];
}
for (i = 0; i < 4; i++)
{
printf("\n%s的票数为%d\n", n[i].name, h[i]);
}
if (max == h[0])
{
printf("\n钟票数最多为憨憨");
}
if (max == h[1])
{
printf("\n白玉票数最多为憨憨");
}
if (max == h[2])
{
printf("\n我票数最多为憨憨");
}
if (max == h[3])
{
printf("\n心心票数最多为憨憨");
}
} |
|