| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1490 人关注过本帖
标题:数组元素作函数实参
只看楼主 加入收藏
空中飞沙
Rank: 1
来 自:东南大学
等 级:新手上路
帖 子:7
专家分:2
注 册:2009-11-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
数组元素作函数实参
#include <stdio.h>
void main()
 {
   int large(int x,int y);
   int a[10],b[10],i,n=0,m=0,k=0;
   printf("enter array a:\n");
   for(i=0;i<10;i++)
       scanf("%d",&a[i]);
   printf("\n");
   for(i=0;i<10;i++)  
       scanf("%d",&b[i]);
   printf("\n");
   for(i=0;i<10,i++)
      { if(large(a[i],b[i])==1
            n=n+1;
         else
            if(large(a[i],b[i])==0
                  m=m+1;

             else
                k=k+1;
   }
      printf("a[i]>b[j]   %d  times\na[i]=b[i]   %d  times\na[i]<b[i]   %d   times\n",n,m,k);
      if(n>k)
         printf("array a is larger than array b\n");
      else
          if(n<k)printf("array a is smaller than array b\n");
      else
         printf(" array a is equal to array b\n");
   }
     large(int x,int y)
     {
        int flag;
         if(x>y)
           flag=1;
         else if(x<y)
           flag=-1;
         else flag=0;
         return(flag);
      }
  请问程序中红色加粗的算法是什么意思啊
搜索更多相关主题的帖子: 元素 函数 
2009-11-11 15:24
万改称才
Rank: 3Rank: 3
来 自:温州
等 级:论坛游侠
帖 子:58
专家分:113
注 册:2009-11-10
收藏
得分:2 
形参和实参是一一对应的
像你的是

a[i] 对应 int x
b[i]  对应 int y

老师说 : 好好读书
2009-11-11 15:39
空中飞沙
Rank: 1
来 自:东南大学
等 级:新手上路
帖 子:7
专家分:2
注 册:2009-11-11
收藏
得分:0 
你说的这个我知道,不过还是谢了。
2009-11-11 16:28
hsm8592
Rank: 2
等 级:论坛游民
帖 子:55
专家分:57
注 册:2009-11-6
收藏
得分:1 
数组a的元素和数组b的元素比较一一比较即a[i]和b[i]比较,统计数组a的元素大于,小于和等于数组b的个数。
2009-11-11 17:25
蓝色药剂
Rank: 4
等 级:业余侠客
帖 子:43
专家分:204
注 册:2007-11-24
收藏
得分:15 
for(i=0;i<10,i++)                  // 循环十次
{ if(large(a[i],b[i])==1)         // 调用large函数对比a,b两个数组下标为i的值
     n=n+1;                        // 根据large的返回值可以判断 == 1,表示a[i]>b[i],累计n,就是记录数组a中
     else                          // 大于数组b中的元素个数

     if(large(a[i],b[i])==0)      // 同理m记录两个数组中相等元素的个数
        m=m+1;
     else
        k=k+1;                     // k记录数组a中小于数组b中元素的个数
}


large(int x,int y)
{
    int flag;
    if(x>y)                  
       flag=1;              // 判断x是否大于y,如果是就将标志置为flag=1,表示第一个数大于第二个数
    else if(x<y)            // 如果x不大于y,那么判断x是否小于y,如果是就将标志置为flag=-1,
       flag=-1;             // 表示第一个数小于第二个数
    else flag=0;            // 如果x既不大于y,也不小于y,那么就将标志置为flag=0,表示两个数相等
       return(flag);        // 返回判断结果
}
2009-11-13 10:15
andytony1234
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:74
专家分:102
注 册:2009-11-9
收藏
得分:0 
对啊,就是楼上这么上滴..这是书上的一道题嘛,应该就是比较数组A和数组B大小的一个问题,是谭浩强书的题,多理解理解吧...我看两次书,如果觉得弄得不是很清楚的话....

呃,,因为我就是这么做的...
2009-11-13 10:35
酷宝宝
Rank: 2
等 级:论坛游民
帖 子:10
专家分:23
注 册:2009-11-13
收藏
得分:0 
狂晕
2009-11-13 12:46
仰望者
Rank: 2
等 级:论坛游民
帖 子:57
专家分:86
注 册:2009-11-6
收藏
得分:2 
多看下书就知道了,或者找个熟的人问问。你问的算是很简单的,涉及的都是基础的知识,看下循环、函数、选择3章吧。
2009-11-13 12:56
大学的守望者
Rank: 1
等 级:新手上路
帖 子:17
专家分:2
注 册:2011-4-16
收藏
得分:0 
请帮我看下,我用gets函数输入怎么运算结果不对呢?非常谢谢……
# include<stdio.h>
# include<string.h>
main()
{
 int h(int x ,int y ) ;
 int a[10],b[10];
 int m=0,n=0,k=0,i;
 printf("enter a:\n");
  gets(a);
 printf("\n");
 printf("enter b:\n");
  gets(b);
 printf("\n");
 for(i=1;i<=10;i++)
 {
  if(h(a[i],b[i])==1)   m++;
  if(h(a[i],b[i])==-1)   n++;
  if(h(a[i],b[i])==0)   k++;
 }
 printf("%d,%d,%d\n",m,n,k);
 if(m>n) printf("a wins!\n");
 else if(m<n) printf("b wins!\n");
 else printf("a equal b\n");
}
 int h(int x,int y)
{
 int a;
 if(x>y) a=1;
 if(x<y) a=-1;
 else a=0;
 return(a);
}
2011-04-28 11:05
快速回复:数组元素作函数实参
数据加载中...
 
   



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

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