【发布时间】:2017-03-02 21:50:44
【问题描述】:
#include<stdio.h>
int main()
{
int num[5], i, s, no;
for(i=0; i<5 ;i++)
{
scanf("%d",&num[i]);
}
printf("enter a number\n");
scanf("%d", &no);
s=search(no, &num[0]);
printf("%d\n",s);
search1(no,num);
}
int i=0;
int search(int no,int *num[i])
{
int x,i;
for(i=0;i<5;i++)
{
if(no == *num[i])
return 1;
}
return 0;
}
int search1(int no,int *num)
{
int i,x,k;
printf("your number %d is present in the list",no);
printf("number\tfrequency");
for(i=0;i<5;i++)
{
for(x=0;x<i+1;x++)
{
k=0;
if(num[i]==num[x] &&i!=x)
{
k=0;
break;
}
else
{
k=1;
continue;
}
}
if(k==1) {
printf("%d",num[i]);
}
}
}
这个问题基于将数组传递给函数。我的代码正在编译,但在运行时询问输入数字后,为了检查它在列表中的存在,它显示分段错误。
【问题讨论】:
-
你有一个全局变量
i,你有很多局部变量i,完全隐藏了全局变量。这不好。 -
其他人很难阅读您的代码。在您多写 一个 行代码之前,请采用公认的格式样式。在我看来,你呈现代码的方式反映了你的思维方式:随意的格式化~解决方案的随机方法。
-
...也许你的想法在你打字之前,但刚性格式样式的另一个优点是它允许你在准备代码时有时间考虑和审查这些想法。
-
@WeatherVane 我编辑了他的问题等待批准...他的代码有多个问题。
-
@TonyTannous 已批准。
标签: c