注册 登录
编程论坛 C++教室

大家来看看这个程序啊`为什么我运行的结果总是不对呢??

war3wudi 发布于 2006-12-17 23:36, 471 次点击

这是20个随机数字里面 选择一个数字看它出现了多少次``
#include <stdio.h>
#include <stdlib.h>
aa (int a);
void main()
{
int k,num[20],search,cishu;
for (k=0;k<20;k++)
{
num[k]=rand()%10;
printf("%d ",num[k]);
}
printf("输入要检索的数字:");
scanf("%d",&search);
cishu=aa (search);
printf("出现了%d次",cishu);
}

aa (int a)
{
int i,r=0,b[20],k;
for (k=0;k<20;k++)
{
b[k]=rand()%10;

}
//a=b[20];
for (k=0;k<20;k++)
{
if(a==b[k])
r++;
}
return r;

}

[此贴子已经被作者于2006-12-17 23:41:21编辑过]

3 回复
#2
smartwind2006-12-18 09:13

数组num[]是局部变量,如果想在aa函数中访问它,有2种方法:
1,把num[]设为全局变量;
2,把num[]的地址作为参数传给aa。

#3
luoxian_20032006-12-18 19:00
思路很混乱阿,那个数组都不是同一个数组阿,可以通过参数把num传进函数aa里,就不用数组b 了
#4
tancui2006-12-18 21:49

#include <stdio.h>
#include <stdlib.h>
int aa(int a);
void main()
{
int k,num[20],search,cishu;
for (k=0;k<20;k++)
{
num[k]=rand()%10;
printf("%d ",num[k]);
}
printf("输入要检索的数字:");
scanf("%d",&search);
cishu = aa(search);
printf("出现了%d次",cishu);
}

int aa(int a)
{
int r=0,b[20],k;
for (k=0;k<20;k++)
{
b[k]=rand()%10;

}
//a=b[20];
for (k=0;k<20;k++)
{
if(a==b[k])
r++;
}
return r;

}

1