24小时热门版块排行榜    

查看: 1384  |  回复: 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@ 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 关于Filecode分析方法 +8 majunge000 2026-08-10 9/450 2026-08-12 22:17 by 虫友是什么虫
[基金申请] 好奇怪的filecode +5 布布和一二 2026-08-08 6/300 2026-08-12 16:11 by 云上清扬
[基金申请] 长年满屏的广告,版主太不责任了。基金也等的急 +4 gltch 2026-08-12 4/200 2026-08-12 16:08 by eulota
[基金申请] filecode +13 documentary 2026-08-10 15/750 2026-08-12 15:56 by 云上清扬
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +7 布布和一二 2026-08-10 10/500 2026-08-12 09:12 by 布布和一二
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[硕博家园] 读博的好处 +3 lnee 2026-08-11 3/150 2026-08-11 18:10 by 希望我好好的
[基金申请] 听说今天filecode变了 +26 布布和一二 2026-08-06 49/2450 2026-08-11 13:18 by WH3796
[基金申请] 基金中了 +15 laoda193707 2026-08-06 15/750 2026-08-11 00:11 by jiafei2190
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] fileCode有新解读? +10 Tide man 2026-08-08 18/900 2026-08-09 12:55 by 仁砚薪传
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 关于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 医学老男孩
[基金申请] 大家散了吧,后缀研究没有意义,别浪费时间了,过好目前的每一天,不要焦虑 +5 Tide man 2026-08-06 7/350 2026-08-07 13:11 by 医学老男孩
[基金申请] filecode +14 等待解的谜 2026-08-06 19/950 2026-08-07 12:20 by wlwhappy
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
信息提示
请填处理意见