鱼C论坛

 找回密码
 立即注册
查看: 3188|回复: 9

求助,一道例题~~~电脑不知道怎么回事不能悬赏,不好意思

[复制链接]
发表于 2015-8-25 22:26:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <stdio.h>

  2. void main()
  3. {
  4.         int max1(int ,int ,int ,int);
  5.         struct toupiao
  6.         {
  7.                 char *name;
  8.                 int num;
  9.         }a[4] = {{"小甲鱼",0},{"苍井空",0},{"松岛枫",0},{"莫丁丁",0}};
  10.         int i,k;
  11.         char *j[10]  ;

  12.         printf("欢迎进入良好公民评选投票系统:()\n\n");
  13.         printf("候选人有:小甲鱼、苍井空、松岛枫、莫丁丁\n\n");

  14.         for (i = 0 ;i < 10 ; i++)
  15.         {
  16.                 printf("第 %d 位投票,请写下支持候选人的名字:", i+1);
  17.                 scanf("%s", &j[i]);
  18.                 printf("\n");

  19.                 if(j[i] = "小甲鱼")
  20.                 {a[0].num++;}
  21.                 if(j[i] = "苍井空")
  22.                 {a[1].num++;}
  23.                 if(j[i] = "松岛枫")
  24.                 {a[2].num++;}
  25.                 if(j[i] = "莫丁丁")
  26.                 {a[3].num++;}
  27.         }


  28.         printf("%s同学得票数为:%d\n",a[0].name,a[0].num);
  29.         printf("%s同学得票数为:%d\n",a[1].name,a[1].num);
  30.         printf("%s同学得票数为:%d\n",a[2].name,a[2].num);
  31.         printf("%s同学得票数为:%d\n",a[3].name,a[3].num);
  32.        
  33.         k = max1(a[0].num,a[1].num,a[2].num,a[3].num);
  34.         for(i = 0 ;i < 4 ; i++)
  35.         {
  36.                 if( k = a[i].num )
  37.                 {
  38.                         printf("此次胜利者为:%s\n",a[i].name);
  39.                         break;
  40.                 }
  41.         }
  42. }

  43. int max1(int a, int b, int c ,int d)
  44. {
  45.         int t[4] = {a,b,c,d};
  46.         int max, i = 0;
  47.        
  48.         for( ; i<4 ;i++);
  49.         {
  50.                 if(max < t[i])
  51.                 {
  52.                         max = t[i];
  53.                 }
  54.         }

  55.         return max;       
  56. }
复制代码

代码是这样的

                               
登录/注册后可看大图

求解!!!

但是输出结果却是这样的,那个得票数不对

但是输出结果却是这样的,那个得票数不对
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-8-26 08:46:46 | 显示全部楼层
上的一个if(k = a[i].num)  这里代码错误 改为==   还有下面最大的函数,max没有赋初值,把他赋值为a ,即max=a  即可

评分

参与人数 1荣誉 +3 鱼币 +5 贡献 +3 收起 理由
Minhal + 3 + 5 + 3 多多帮助

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-8-26 10:47:21 | 显示全部楼层
if(j[i] = "小甲鱼");在C与C++里面,=这是表示赋值符号,不是比较而比较(==)这样的,在IF里给一个数赋值永远是真的。你可以这样写if(  "小甲鱼" == j[i]);把字符串常量放在左边。右边为变量,你这样把赋值符号与比较==用混了的话。编译器会提醒错误的。还就是变量在声明时最好给他赋一个值,有些编译器会给他的值。但是不确定。自己赋值最好。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-26 12:00:54 From FishC Mobile | 显示全部楼层
helehappy 发表于 2015-8-26 08:46
上的一个if(k = a.num)  这里代码错误 改为==   还有下面最大的函数,max没有赋初值,把他赋值为a ,即max= ...

哦哦就是,马虎了,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-26 12:01:26 From FishC Mobile | 显示全部楼层
yjip267 发表于 2015-8-26 10:47
if(j = "小甲鱼");在C与C++里面,=这是表示赋值符号,不是比较而比较(==)这样的,在IF里给一个数赋值永 ...

明白了,谢谢回答
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-28 14:33:04 | 显示全部楼层
#include <stdio.h>

void main()
{
        int max1(int, int, int, int);
        struct toupiao
        {
                char *name;
                int num;
        }a[4] = { { "小甲鱼", 0 }, { "苍井空", 0 }, { "松岛枫", 0 }, { "莫丁丁", 0 } };
        int i, k;
        char arr[10];

        printf("欢迎进入良好公民评选投票系统:()\n\n");
        printf("候选人有:小甲鱼、苍井空、松岛枫、莫丁丁\n\n");

        for (i = 0; i < 10; i++)
        {
                printf("第 %d 位投票,请写下支持候选人的名字:", i + 1);
                scanf("%s", arr);
                printf("\n");

                if (!(strcmp(arr ,"小甲鱼")))
                {
                        a[0].num++;
                }
                if (!(strcmp(arr, "苍井空")))
                {
                        a[1].num++;
                }
                if (!(strcmp(arr, "松岛枫")))
                {
                        a[2].num++;
                }
                if (!(strcmp(arr, "莫丁丁")))
                {
                        a[3].num++;
                }
        }


        printf("%s同学得票数为:%d\n", a[0].name, a[0].num);
        printf("%s同学得票数为:%d\n", a[1].name, a[1].num);
        printf("%s同学得票数为:%d\n", a[2].name, a[2].num);
        printf("%s同学得票数为:%d\n", a[3].name, a[3].num);

        k = max1(a[0].num, a[1].num, a[2].num, a[3].num);
        for (i = 0; i < 4; i++)
        {
                if (k = a[i].num)
                {
                        printf("此次胜利者为:%s\n", a[i].name);
                        break;
                }
        }
}

int max1(int a, int b, int c, int d)
{
        int t[4] = { a, b, c, d };
        int max=0, i = 0;

        for (; i<4; i++);
        {
                if (max < t[i])
                {
                        max = t[i];
                }
        }

        return max;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-28 21:53:05 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-8-28 21:53:51 | 显示全部楼层
Delta 发表于 2015-8-28 14:33
#include

void main()

谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-24 14:07:59 | 显示全部楼层
不客气,圣诞快乐!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-30 23:42:49 | 显示全部楼层
Delta 发表于 2015-12-24 14:07
不客气,圣诞快乐!

谢谢,元旦快乐
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 18:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表