| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 424 人关注过本帖
标题:请指教,函数调用的问题
只看楼主 加入收藏
天仲子
Rank: 2
等 级:论坛游民
帖 子:49
专家分:49
注 册:2012-1-3
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:9 
请指教,函数调用的问题
求教!
要求比较两个数组的大小。规则:对应项相互比较(a【0】与b【0】,a【1】与b【1】。。。),对应项大的次数多的数组,即为较大的数组,并输出相应的大于,小于,等于的次数。可是用以下的代码得不到正确的结果,请指教哪出了问题。
#include<stdio.h>
int h=0,t=0,k=0,q=0,p=0;
char w;
int main()
{int m,n,i,j;
int a[5];
int b[5];
void compete(int c[],int d[]);
printf("Please input five numbers\n");
for(m=0;m<5;m++)
  scanf("%d",&a[m]);

for(n=0;n<5;n++)
  scanf("%d",&b[n]);
compete(a,b);
printf("较大的数组是:%c,大于:%d次,小于;%d次,等于:%d次",w,q,5-q-p,p);
return 0;
}

void compete(int c[],int d[])
{int i,j;
for(i=0;i<5;i++)
  for(j=0;j<5;j++)
  {if(c[i]>d[j])
     h=h+1;
   else
     if(c[i]=d[j])
       t=t+1;
     else
       k=k+1;
}
if(h>=k)
{ w='a';
  q=h;}
else
{ w='b';
  q=k;}
}
搜索更多相关主题的帖子: 函数 compete include numbers 
2012-03-11 09:39
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:5 
程序代码:
#include<stdio.h>

 int h=0,t=0,k=0,q=0,p=0;

 char w;

 int main()

 {
     int m,n,i,j;
     int a[5];
     int b[5];
     void compete(int c[],int d[]);
     printf("Please input five numbers\n");
     for(m=0;m<5;m++)
       scanf("%d",&a[m]);
    for(n=0;n<5;n++)
       scanf("%d",&b[n]);
     compete(a,b);
     printf("较大的数组是:%c,大于:%d次,小于;%d次,等于:%d次",w,q,5-q-t,t);//p应为t
     return 0;

 }
void compete(int c[],int d[])

 {
     int i,j;
     for(i=0;i<5;i++)
       {if(c[i]>d[i])
          h=h+1;
        else
          if(c[i]==d[i])//少了个=
            t=t+1;
          else
            k=k+1;

 }

 if(h>=k)

 {
          w='a';
       q=h;}
     else
     { w='b';
       q=k;
    }

 }
楼主题意没理解对,是对应项比较,不是任意两个比较,我把改好的发上来,修改的地方都注释了
收到的鲜花
  • 天仲子2012-03-11 13:11 送鲜花  5朵  

酱油实习生
2012-03-11 09:47
天仲子
Rank: 2
等 级:论坛游民
帖 子:49
专家分:49
注 册:2012-1-3
收藏
得分:0 
回复 2楼 墨清扬
void compete(int c[],int d[])
 {int i,j;
 for(i=0;i<5;i++)
   for(j=0;j<5;j++)
   {if(c[i]>d[j])
 我觉得这两个for语句并列的关系,比较顺序应该是按对应顺序吧,i=0时,j=0;i=1时,j=1。。。。一直这样对应下去吧
2012-03-11 10:09
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:0 
回复 3楼 天仲子
这不是并列,i=0时,j=0,1,2,3,4,i=1,2,3,4同理

酱油实习生
2012-03-11 10:34
天仲子
Rank: 2
等 级:论坛游民
帖 子:49
专家分:49
注 册:2012-1-3
收藏
得分:0 
那以下这两个有什么区别吗?这俩应该执行这两个循环上应该是一样的吧
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{a[i]<b[j]
...
}
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
a[i]<b[j];
...
}
2012-03-11 11:49
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:5 
回复 5楼 天仲子
第二个内层循环只有一条语句,就是紧跟着for(j)的那一条。

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2012-03-11 12:09
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:5 
程序代码:
#include<stdio.h>

 int main()

 {
     int m,n;
    int a[5];
    int b[5];
  
    void compete(int c[],int d[]);
  
    printf("Please input five numbers\n");
    for(m = 0;m < 5;m++)
       scanf("%d",&a[m]);

    for(n = 0;n < 5;n++)
       scanf("%d",&b[n]);
     
    compete(a,b);
     return 0;

 }

void compete(int c[],int d[])

 {
     int i,q;
     char w;
     int h = 0,k = 0,t = 0;
    for(i = 0;i < 5;i++)
        {
           if(c[i] > d[i])
              h++;
           else if(c[i] == d[i])
               t++;
          else
             k++;
        }
    if(h >= k)
     {
         w = 'a';
         q = h;
     }
    else
    {
         w = 'b';
         q = k;
    }

    printf("较大的数组是:%c,大于:%d次,小于:%d次,等于:%d次",w,q,5-q-t,t);

 }

我觉得最好还是别用外部变量的好
收到的鲜花
  • 天仲子2012-03-11 13:10 送鲜花  5朵  

最基础的往往是你最容易忽略的!
2012-03-11 12:32
天仲子
Rank: 2
等 级:论坛游民
帖 子:49
专家分:49
注 册:2012-1-3
收藏
得分:0 
回复 6楼 lonmaor
现在不明白的就是,那两个循环执行的顺序是否一致,第一个为什么不是并列关系呢
2012-03-11 12:47
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:0 
回复 8楼 天仲子
建议你看一下for语句的语句作用域部分,每一本书都会介绍到的。for后面所跟的循环体可以是单条语句或者语句块{},你需要识别for的作用域能延伸到哪。
收到的鲜花
  • 天仲子2012-03-11 13:10 送鲜花  5朵  

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2012-03-11 12:51
杨松松
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:98
专家分:142
注 册:2011-12-3
收藏
得分:5 
楼主用一下strcmp函数不就解决了么?
2012-03-11 12:57
快速回复:请指教,函数调用的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032101 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved