| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 988 人关注过本帖
标题:[求助]有一个数组,从中找出与已知给定的数的个数。
只看楼主 加入收藏
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
结帖率:100%
收藏
 问题点数:0 回复次数:12 
[求助]有一个数组,从中找出与已知给定的数的个数。

#include <stdio.h>

typedef struct
{
int a[10];
int size;
}slt;

int getline(slt *p,int a[],int x)
{
int k=0;
if (p->size==0)
return 0;
for (int i=1;i<=p->size;i++)
{
if (p->a[i]!=x)
return 0;
else
return k;
}
}

void main()
{
int t;
slt *q;
for (int i=0;i<10;i++)
q->a[i]=i;
q->size=10;
t=getline(q,a,5);
printf("\nt=%d\n",t);
}
比如说数组的元素为:1 2 3 4 5 6,给定的数为5。那么数组中只有一个5,所以结果应该是1。

搜索更多相关主题的帖子: 给定 
2007-03-14 11:14
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

算法错误,getline函数中只会考虑第一个数,后面的不会考虑,已经返回值了.
定义一个数用来记录和给定的数相等的个数,相等就加1,最后返回这个数


雁无留踪之意,水无取影之心
2007-03-14 11:42
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 

哎 还是不是蛮懂呀。能不能在说清楚一点呀?呵呵。。。


~~我的明天我知道~~
2007-03-14 11:54
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
int getline(slt *p,int a[],int x)
{
int i,k=0;
if (p->size==0)
return 0;
for (i=0;i<=p->size;i++)
if (p->a[i]==x)
k++;
return k;
}

还有一点,不要在FOR中定义变量,有的编译器不支持

雁无留踪之意,水无取影之心
2007-03-14 12:04
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 

还有个问题,为什么那个a没有定义呀?(t=getline(q,a,5);


~~我的明天我知道~~
2007-03-14 12:15
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

#include <stdio.h>

typedef struct
{
int a[10];
int size;
}slt;

int getline(slt *p,int a[],int x)
{
int i,k=0;
if (p->size==0)
return 0;
for (i=0;i<=p->size;i++)
if (p->a[i]==x)
k++;
return k;
}

void main()
{
int t,i;
slt *q;
for (i=0;i<10;i++)
q->a[i]=5;
q->size=10;

t=getline(q,q->a,5);
printf("\nt=%d\n",t);
}


[此贴子已经被作者于2007-3-14 12:18:51编辑过]


雁无留踪之意,水无取影之心
2007-03-14 12:17
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
那为什么还会出现这样的警告呀?
D:\zuoye.cpp(25) : warning C4700: local variable 'q' used without having been initialized

~~我的明天我知道~~
2007-03-14 12:25
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
我这边运行正常

雁无留踪之意,水无取影之心
2007-03-14 12:33
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 

可我的不能通过/


~~我的明天我知道~~
2007-03-14 12:45
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

还有一种严重的问题没有注意
就是没有给指针指定地址,改成下面的
#include <stdio.h>

typedef struct
{
int a[10];
int size;
}slt;

int getline(slt *p,int a[],int x)
{
int i,k=0;
if (p->size==0)
return 0;
for (i=0;i<=p->size;i++)
if (p->a[i]==x)
k++;
return k;
}

void main()
{
int t,i;
slt *q,b;
for (i=0;i<10;i++)
b.a[i]=5;
b.size=10;
q=&b;
t=getline(q,q->a,5);
printf("\nt=%d\n",t);
}



还有,你用的什么编译器,我换了三个编译器都通过

[此贴子已经被作者于2007-3-14 12:47:15编辑过]


雁无留踪之意,水无取影之心
2007-03-14 12:46
快速回复:[求助]有一个数组,从中找出与已知给定的数的个数。
数据加载中...
 
   



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

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