-6
#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',這完全隱藏全局變量。這是不好的。 – abelenky
另一個人很難讀取你的代碼。在您寫出***一行***代碼之前,請採用可接受的格式化樣式。在我看來,您呈現代碼的方式反映了您的思維方式:對解決方案採用隨意的方式來解決問題。 –
......也許你的想法超出了你的打字習慣,但另一個剛性格式化風格的優點是它可以讓你有時間在準備代碼時考慮和審查這些想法。 –