C 查找数组中的重复数的步骤
问题是将数字作为数组的输入,并显示其中重复的数字 我在练习提高编码技能时遇到了这个问题C 查找数组中的重复数的步骤,c,C,问题是将数字作为数组的输入,并显示其中重复的数字 我在练习提高编码技能时遇到了这个问题 #include<stdio.h> int main() { int i=0,j=1,m,n,arry[100],count=0; printf("Enter the number of elements in an array\n"); scanf("%d",&n); printf("Enter the array elements\n");
#include<stdio.h>
int main()
{
int i=0,j=1,m,n,arry[100],count=0;
printf("Enter the number of elements in an array\n");
scanf("%d",&n);
printf("Enter the array elements\n");
for(m=0;m<n;n++)
{
scanf("%d",&arry[m]);
}
while(i!=n-1)
{
for(;j<n;j++)
{
if(arry[i]==arry[j])
count++;
}
i++;
}
printf("The number of duplicates in the array are %d",count);
}
这似乎是一个简单的问题,我认为算法是正确的,但我没有得到所需的输出。我执行了DEV C++上的代码,在输入数组元素后,代码崩溃了。我也尝试了一些在线编译器。它们有时在输入元素时显示“分段错误”。我认为这与数组索引有关
PS:我是第一次使用这个平台,我对这里讨论的问题的难度一无所知。如果你觉得这太简单和愚蠢,不要笑,帮我解决 你在程序中犯了很多愚蠢的错误,比如form=0;m思考while的第一次迭代后j的值以及下一次迭代中会发生什么。你把第一部分漏掉了。。。。重新考虑这是否真的是你想要的。这里有一些有用的提示:1-你用1初始化j,但它应该是0,否则你将跳过第一个元素而不处理它。2-在比较两个元素之前,请确保避免在i==j时比较同一索引的两个值,以便将if更改为if i!=j&&arr[i]==arr[j]3-您需要确保当达到第二个值时,不会重复计算两次值,即:i=3和j=7。与i=7和j=3相比,首先对数组进行排序要容易得多。是的,对数组进行排序,然后循环检查相邻元素是否相等。
#include<stdio.h>
int main()
{
int i=0,n,count=0;
printf("Enter the number of elements in an array\n");
scanf("%d",&n);
int arry[n];
printf("Enter the array elements\n");
for(int m=0;m<n;m++)
{
scanf("%d",&arry[m]);
}
while(i!=n-1)
{
for(int j=0;j<n;j++)
{
if(arry[i]==arry[j])
count++;
}
i++;
}
printf("The number of duplicates in the array are %d",count);
return 0;
}
#include<stdio.h>
int main() {
int n;
printf("Enter The Size Of Array: ");
scanf("%d",&n);
int a[n],b[n];
int i;
int p=0;
printf("Enter The Elements Of The Array:\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
int j;
for(j=0;j<i;j++)
{
if(a[i]==a[j])
{
break;
}
}
if(j==i)
{
b[p]=a[i];
p++;
}
}
printf("\nUnique Numbers Are: ");
for(i=0;i<p;i++)
{
printf("%d ",b[i]);
}
printf("\n");
return 0;
}
#include<stdio.h>
int main() {
int n;
printf("Enter The Size Of Array: ");
scanf("%d",&n);
int a[n],b[n],c[n];
int p=0;
printf("Enter The Elements Of The Array:\n");
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++)
{
int j;
for(j=0;j<i;j++)
{
if(a[i]==a[j])
{
break;
}
}
if(j==i)
{
b[p]=a[i];
p++;
}
}
for(int i=0;i<p;i++)
{
int count=0;
for(int j=0;j<n;j++)
{
if(a[j]==b[i])
{
count++;
}
}
c[i]=count;
}
for(int i=0;i<p;i++)
{
printf("The Unique Number %d Was Repeated %d Times In The Array.\n",b[i],c[i]);
}
printf("\n");
return 0; }