首页 > 用户发贴区 > 编程问题提问区 > 怎么也找不出错误,寻找高手解围!
2007
07-16

怎么也找不出错误,寻找高手解围!

我写了个程序,找了一下午也找不出问题,就是调不出来!相当郁闷!


这是题目:设有ABC三个足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分为5,3,2。请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。注意:若同一张票上写有两个相同的代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则显示三个候选人得分并输出“祝贺X当选为冠军!”
例如:投票人数为 5
输入投票内容:
abc
cab
caa 该票无效!
cba
bca
三位候选人得分:a:12
b:13
c:15
祝贺C当选为冠军!


我思路是:先调用read()将每个投票者的投票信息存放在一个二维数组(vote[N][3])里面,再调用statistics()统计每个候选人的票数,最后调用sort()函数求出最大得票者。其中,statistics()函数又调用了select()函数。result[3]依次存放选手a,b,c的票数。


代码如下:


/* Note:Your choice is C IDE */
#include “stdio.h”
#define N 5
void select(int step,char vote,int * result)
 {
  switch(vote)
       {  case ‘a’:result[0]+=step;break;
          case ‘b’:result[1]+=step;break;
          case ‘c’:result[2]+=step;break;
        }
}/*票数统计*/


int read(char vote[][3])
 {
 int i,j;
 for(i=0;i<N;)
    {
      for(j=0;j<3;j++)scanf(“%c”,&vote[i][j]);
      i++;
      if(vote[i-1][0]==vote[i-1][1]||vote[i-1][1]==vote[i-1][2]||vote[i-1][2]==vote[i-1][0])
         { 
          i–;
          printf(“This vote is ineffective!\n”);
         }  
    }
    return i-1;
 
}



int * statistics(int n ,char vote[][3])
{
 int i,j,result[3]={0,0,0};
 for(i=0;i<n;i++)
      for(j=0;j<3;j++)
        switch(j)
          {
           case 0:select(5,vote[i][j],result);break;
           case 1:select(3,vote[i][j],result);break;
            case 2:select(2,vote[i][j],result);break;
          }
    printf(“\na   %d\nb   %d\nc   %d\n”,result[0],result[1],result[2]);/*result数组依次存放ABC的票数*/
    return result;
}/*统计票数,返回每个候选人票数并输出*/  


char sort(int result[3])
{
  char flag=’a';
  if(result[1]>result[0])
    {   flag=’b';result[0]=result[1];}
  if(result[2]>result[0])
    {   flag=’c';result[0]=result[2];}
  printf(“Congratulate %c to win the contest”,flag);
  return flag;
}



main()
{
int  n,*result;
char outcome, vote[N][3]={0} ;
n=read(vote);
result=statistics(n,vote);
outcome=sort(result); 
   
}


请众高手指点迷津。


怎么也找不出错误,寻找高手解围!》有 2 条评论

  1. 孤独不苦 说:

    你这个程序啊,错误太多了.还是多看看书修改下程序再说吧.

  2. unbit 说:

    语法上很多错误吗 [:$]

    唉,我看不出啊。。。。。。

留下一个回复