| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 736 人关注过本帖
标题:帮忙看下,哪里错了。。
只看楼主 加入收藏
unt
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-6-20
结帖率:0
收藏
已结贴  问题点数:20 回复次数:10 
帮忙看下,哪里错了。。
题目是:调用函数求两数组的交集,并在主函数输出。
我这样写的,不知道怎么改。。。
#include<stdio.h>
void main()
{
int a[4],b[4],c[k];
int i,j;
printf("Enter a array:\n");
for(i=0;i<4;i++)
  scanf("%d",&a[i]);
printf("\n");
printf("Enter a array:\n");
for(i=0;i<4;i++)
  scanf("%d",&b[i]);
c[k]=jj(a[4],b[4]);
for(i=0;i<=k;i++)
  printf("%4d",c[i]);
}
int jj(int a[4],int b[4])
{
  int c[k]=0;
  int i,j,m=0;
  for(i=0;i<4;i++)
  {
    for(j=0;j<4;j++)
      if(a[i]=b[j])
    {
      m++;
      c[k]=a[i];
    }
  }
  return c[k];
}
搜索更多相关主题的帖子: include Enter 
2010-06-20 18:19
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:3 
你编译过吗
2010-06-20 20:51
sjw903
Rank: 2
等 级:论坛游民
帖 子:9
专家分:14
注 册:2008-10-3
收藏
得分:3 
c[k]=jj(a[4],b[4]);这句话有问题,应该这样
c[k]=jj(a,b); 把数组传过去,你那样是传的数组中的值,况且也错了,数组越界了,没有a[4]and b[4]
2010-06-20 20:53
unt
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-6-20
收藏
得分:0 
回复 3楼 sjw903
我数组这没怎么听,那要怎么改啊?
2010-06-22 08:45
zhjr5201314
Rank: 4
等 级:业余侠客
帖 子:63
专家分:238
注 册:2009-9-10
收藏
得分:3 
#include<stdio.h>
int jj(int a[4],int b[4],int c[4])
{
  int i,j,m=0,k=0;
  for(i=0;i<4;i++)
  {
    for(j=0;j<4;j++)
    if(a[i]==b[j])
    {
      m++;
      c[k++]=a[i];
    }
  }
  return m;
}
void main()
{
    int a[4], b[4],c[4];
    int i,j,k=0;
    printf("Enter a array:\n");
    for(i=0;i<4;i++)
      scanf("%d",&a[i]);
    printf("\n");
    printf("Enter a array:\n");
    for(i=0;i<4;i++)
      scanf("%d",&b[i]);
    j=jj(a,b,c);
    for(i=0;i<j;i++)
      printf("%4d",c[i]);
    printf("\n");
}
2010-06-22 10:30
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:3 
程序代码:
#include<stdio.h>
void main()
{
    void jj(int a[4],int b[4],int c[4]);//如果函数是在main函数后定义的,要先声明再使用
    int a[4],b[4],c[4];
    int i,j;
    for(i=0;i<4;i++)   //用来初始化数组c的,定义后初始化可以避免错误
        c[i]=0;
    printf("Enter a array:\n");
    for(i=0;i<4;i++)
        scanf("%d",&a[i]);
    printf("\n");
    printf("Enter a array:\n");
    for(i=0;i<4;i++)
        scanf("%d",&b[i]);
    jj(a,b,c);         //调用函数,把a,b数组中相同的存在数组c中,字母啊a,b,c都表示首地址
    for(i=0;i<=4;i++)  //输出,如果不为0,就是焦急元素
        if(c[i]!=0)
            printf("%4d",c[i]);
}

void jj(int a[4],int b[4],int c[])
{
    int i,j,k=0;
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
            if(a[i]==b[j])
                c[k++]=a[i];
    }
} 

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2010-06-22 12:13
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:3 
回复 楼主 unt
主函数里的第一个语句就有错误。
k不是常量,而且没有定义。

南国利剑
2010-06-22 12:31
无悔爱白修
Rank: 2
等 级:论坛游民
帖 子:28
专家分:27
注 册:2010-3-24
收藏
得分:3 
语法问题存在比较多.1.数组下标不能用变量.2.函数要先申明再使用.
2010-06-22 16:17
unt
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-6-20
收藏
得分:0 
回复 5楼 zhjr5201314
谢谢哦
2010-06-22 16:57
unt
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-6-20
收藏
得分:0 
我写了一个,可以在看看不?
#include<stdio.h>
void main()
{
 int s(int *a,int *b,int *c);
 int a[10],b[10],c[10];
 int i,j,t,r;
 printf("plaese input ten number to a:");
 for(i=0;i<=9;i++)
 scanf("%d",&a[i]);
 printf("please input ten number to b:");
 for(j=0;j<=9;j++)
 scanf("%d",&b[j]);
 r=s(a,b,c);
 printf("the array c is:");
 for(i=0;i<=r-1;i++)
 printf("%3d",c[i]);
}
int s(int *a,int *b,int *c)
{
 int i,j,t=0;
 for(i=0;i<=9;i++)
  {
    for(j=0;j<=9;j++)
     {
         if(a[i]==b[j])
            {c[t]=b[j];
              t++;}
     }
  }
 return t;
 }
这个可以了。。。。可以吧?!
2010-06-22 17:02
快速回复:帮忙看下,哪里错了。。
数据加载中...
 
   



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

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