24小时热门版块排行榜    

查看: 1380  |  回复: 5

xiaolei@

金虫 (小有名气)

[求助] 求大侠帮忙看个程序

#include
#include

typedef struct node
{   char name[8];
int num;
int score;
int tax;
}Node;     //  候选人结构


void shellSort( Node **, int );

int main(void)
{
int n = 0;
Node * pArray[9];//指针数组,长度9
int count = 0;
//int status = 1;
int vote = -1;

printf("Input the number of the candidates(1-9):\n";
scanf("%d", &n);
while(getchar()!='\n')
{
  ;
}

while (n>9 || n<1)
{
  if (n>9)
  {
   printf("No, there cannot be so many candidates. Retry.\n";
  }
  else
  {
   printf("No candidates? It cannot be! Retry!\n";
  }
  scanf("%d", &n);
  while(getchar()!='\n')
  {
   ;
  }
}

for (count=0; count {
  pArray[count] = (Node *)malloc(sizeof(Node));
  pArray[count]->num = count+1;
  pArray[count]->tax = 0;
  pArray[count]->score = 0;
  printf("Input No.%d candidate's name:\n", count+1);
  gets(pArray[count]->name);
}

while (vote)
{
  printf("Now, let us vote:\n*************\n";
  for (count=0; count   {
   printf("%d. %s\n", count+1, pArray[count]->name);
  }
  printf("0.quit\n*************\n";
  scanf("%d", &vote);
  while(getchar()!='\n')
  {
   ;
  }
  
  while (vote<0 || vote>n)
  {
   printf("No joke, thank you. Revote.\n";
   scanf("%d", &vote);
   while(getchar()!='\n')
   {
    ;
   }
   
  }
  if (vote>0&&vote<=n)
  {
   pArray[vote-1]->score++;
  }
}

printf("Finish voting. Let's find the winner......\n\n";

shellSort( pArray, n );

for (count=0; count {
                  pArray[count]->tax=count+1;
  printf("%d. %s %d votes.\n", count+1, pArray[count]->name, pArray[count]->score);
}

for(count=0; count {
  free(pArray[count]);
  pArray[count] = NULL;
}

return 0;
}

void shellSort( Node *p[], int len )
{
const int Length = len;
int i = 0;
int j = 0;
int gap = 0;
Node *temp = NULL;

gap = Length/2;

while (gap>0)
{
  for (i=gap; i   {
   j = i - gap;
   temp = *(p+i);
   
   while ( (j>=0) && (p[j]->score < temp->score) )
   {
    *(p+j+gap) = *(p+j);
    j = j - gap;
   }
   
   *(p+j+gap) = temp;
  }
  gap /= 2;
}
}
谁能帮忙看下这个程序的每个函数的时间复杂度空间复杂度是多少?还有最后个希尔排序算法每步的意思。谢谢啦
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

英雄就是做任何事都全力以赴!!!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lt292

金虫 (正式写手)

Holy Shit

我表示,我已经看不懂指针是什么意思了
好久没看到c程序了
记忆中的颜色,慢慢褪去,变成一缕缕的黑丝,最终消失在茫茫的空白里,一去不返```
2楼2011-12-30 16:19:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lt292

金虫 (正式写手)

Holy Shit

xzhdty: 欢迎常来 2011-12-30 20:09:50
lz程序建议给个缩进啊,看起来层次有点乱
编程风格很重要
记忆中的颜色,慢慢褪去,变成一缕缕的黑丝,最终消失在茫茫的空白里,一去不返```
3楼2011-12-30 16:20:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaolei@

金虫 (小有名气)

引用回帖:
: Originally posted by lt292 at 2011-12-30 16:20:54:
lz程序建议给个缩进啊,看起来层次有点乱
编程风格很重要

额....还是初学...不太会
英雄就是做任何事都全力以赴!!!
4楼2011-12-30 17:12:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jxt1234

新虫 (初入文坛)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
余泽成(金币+2): 谢谢参与应助,新年快乐! 2011-12-31 18:27:09
xiaolei@(金币+10): ★★★很有帮助 谢谢啦 课程设计要求 所以才这样的。 2011-12-31 19:42:43
这个程序就是输入侯选人票数并做个希尔排序么。。
关于排序算法建议回去看数据结构。。。
希尔排序的时间复杂度是:O(nlogn)~O(n2),平均时间复杂度大致是O(n^1.5)
其实按这个程序流程不如构造大顶堆效率。。
5楼2011-12-31 15:58:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ruby0531

新虫 (小有名气)


jjdg(金币+1): 感谢发表意见 2012-01-05 03:10:23
希尔是nlgn吧  另  lz的{}记得不同层之间缩进啊
6楼2012-01-04 16:27:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xiaolei@ 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 关于代码变化问题,想知道的进来 +11 且听虎啸 2026-08-07 14/700 2026-08-08 12:50 by 布布和一二
[基金申请] 这样的filecode谁见过 +3 布布和一二 2026-08-08 5/250 2026-08-08 12:22 by 仁砚薪传
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 HEQlVqMTIA7d 2026-08-07 4/200 2026-08-08 08:27 by 6vVgjDL4CnGu
[基金申请] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 KXLV3nuBVBY7 2026-08-07 4/200 2026-08-08 08:21 by 6vVgjDL4CnGu
[基金申请] 基金中了 +14 laoda193707 2026-08-06 14/700 2026-08-08 00:23 by 实验小白ha
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] 听说今天filecode变了 +24 布布和一二 2026-08-06 47/2350 2026-08-07 16:02 by zhiyanjiang
[基金申请] filecode与中标关系的预测 +3 布布和一二 2026-08-07 3/150 2026-08-07 15:09 by gltch
[论文投稿] 十年后又回来了,论文投稿求助 +4 哈哈114477 2026-08-01 4/200 2026-08-07 14:39 by jgy194592
[基金申请] 大家散了吧,后缀研究没有意义,别浪费时间了,过好目前的每一天,不要焦虑 +5 Tide man 2026-08-06 7/350 2026-08-07 13:11 by 医学老男孩
[基金申请] 关于豆爷回答的JTJC与%2F数量 +4 yang182083 2026-08-06 6/300 2026-08-07 12:43 by 虫友是什么虫
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
[基金申请] 8月时间戳变的,举个手。玩一下,释放压力 +9 archvillain 2026-08-04 11/550 2026-08-05 20:06 by wlwhappy
[基金申请] 好消息?这个有何含义??? +8 Tide man 2026-08-05 10/500 2026-08-05 16:14 by xmuxiaoyu
[考博] 【2027博士申请】纳米药物递送方向 20+3 13586093586 2026-08-03 4/200 2026-08-05 09:59 by lfy8008
[基金申请] 有没有H口的?有收到消息的吗? +3 超级海虾 2026-08-04 3/150 2026-08-04 17:26 by 学教育滴
[基金申请] 面上提前没消息,有中的吗 +14 archvillain 2026-08-02 18/900 2026-08-04 14:42 by archvillain
[基金申请] 什么时候能放榜呀? +3 Jacob678 2026-08-03 3/150 2026-08-03 16:14 by gltch
信息提示
请填处理意见