❶ c语言中重复数据的删除
首先对数据进行排序,然后使用循环操作就可以删除重复数据!
❷ c语言删除重复的数据
问题不是很明白,不过 数组从下标0开始所以j应该从0开始,而不是1
应该为:
for (j=0;j<i;j++)
{
l=0;//循环后要初始化!!!注意这里
for (;l<=j;l++)
{
if (shuzu[l] == shuzu[j])
{
IsAdd=1;
break;
}
}
if (IsAdd == 0) {
newshuzu[j] = shuzu[j];
}
}
❸ c语言删出重复数据问题
问题不是很明白,不过 数组从下标0开始所以j应该从0开始,而不是1
应该为:
for (j=0;j<i;j++)
{
l=0;//循环后要初始化!!!注意这里
for (;l<=j;l++)
{
if (shuzu[l] == shuzu[j])
{
IsAdd=1;
break;
}
}
if (IsAdd == 0) {
newshuzu[j] = shuzu[j];
}
}
❹ c语言求重复数字问题
#define N 100//可以修改这个数,定义一个足够长的数组
#include<stdio.h>
#include<string.h>
int main()
{
int a[N],i,j,m;
scanf("%d",&m);//输入m个数
getchar();//接收Enter键
for(i=0;i<m;i++)
scanf("%d",a+i);
getchar();
for(i=0;i<m;i++)
for(j=i;j<m;j++)
if(a[i]==a[j]&&a[j]!=-1)//把相同的数置为-1,输出时就不要输出了,
//也可以重新定义一个数组复制过去
a[j]=-1;
for(i=0;i<m;i++)
if(a[i]!=-1)
printf("%2d",a[i]);
putchar('\n');
return 0;
}
❺ c语言统计数据时怎么排除重复数据
如果是统计字符串个数总数的话,你不是已经获取这些重复数据的数量count了吗,你只需要定义一个临时变量sum,
在每一次循环结束后,让
sum
=
sum
+
(count
-1)
就好了(count是str出现的总次数,-1是至少留一个,不至于全部都去掉)。最后减去这个sum就行。
如果是是要删除这些重复的字符的话,那就比较费劲了,毕竟数组的删除是比较坑爹的,建议换成链表。而且你这个删除还不是一个两个的事儿。链表做删除很容易!
❻ c语言删除重复数据
程序的基本思路是把输入的字符串放到a[100]字符组中,然后把a[100]中所有不重复的字符添加到b[100]中,间接完成对字符串中的重复字符的删除
#include<stdio.h>
void main()
{
char a[100],b[100];
//定义两个字符组,a[100]用来接收输入的字符串,b[100]用来存储不重复的字符
int pa=0,pb=0,i,flag;
scanf("%s",a);
//输入字符串到a[100]中,用scanf读入到a[100]中会自动在a[100]中字符串结束的地方加上'\0'
for(pa=0;a[pa]!='\0';pa++)
//for循环结束的条件是a[pa]==0,也就是从a[100]字符组中读取一个字符,直到没有
{
flag=1;
//flag是个标志符,当flag==1时,说明这个字符(下句中的a[pa])是第一次出现,应该加入到b[100]中
//如果flag==0,说明这个字符(下句中的a[pa])重复了,不应该加到b[100]中
for(i=0;i<pb;i++) if(b[i]==a[pa]) flag=0;
//把a[100]中读取的字符a[pa]与b[100]中的所有字符进行比较,如果b[i]==a[pa]
//说明这个字符已经在b[100]中了,也就是重复字符了,所有将flag=0,不能加入b[100]中
//如果a[pa]与b[100]中的所有字符都不相等,说明这个字条是第一次出现,应该加到b[100]
if(flag)
{
b[pb]=a[pa];pb++;
}
//如果flag==1,则将a[pa]这个字符加入到b[100]中,然后将pb加1
}
b[pb]='\0';
//当所有的不重复的字符都加入到b[100]中时,将b[100]中字符结束的地方加'\0',也就是b[pb]='\0'
//因为字符串都是民'\0'结尾的,所以加上这句
printf("%s\n",b);
//输出b[100]中的字符串,也就是删除过重复字符之后的了
}
❼ C语言使得重复的数据仅出现一次
刚刚写的,设数组有10个数,参考程序如下:
#include
int
main()
{
int
p[10];
int
k,i;
printf("输入10个数字,以空格隔开\n");
for
(int
i=0;
i<10;
i++)
{
scanf("%d",&p[i]);
}
for
(i
=
0;
i<10;
i++)
{
for
(k
=
9;
k>=0;
k--)
{
if
(i
!=
k)
{
if
(p[i]==p[k])
{
k--;
break;
}
}
}
if
(k>=0)
{
printf("元素重复\n");
break;
}
}
if
(i==10)
{
printf("元素无重复\n");
}
return
0;
}
❽ c语言统计数据时怎么排除重复数据
如果是统计字符串个数总数的话,你不是已经获取这些重复数据的数量count了吗,你只需要定义一个临时变量sum, 在每一次循环结束后,让 sum = sum + (count -1) 就好了(count是str出现的总次数,-1是至少留一个,不至于全部都去掉)。最后减去这个sum就行。
如果是是要删除这些重复的字符的话,那就比较费劲了,毕竟数组的删除是比较坑爹的,建议换成链表。而且你这个删除还不是一个两个的事儿。链表做删除很容易!
❾ 用C语言实现查找数组中重复的数据,删除重复数据后输出数组.
从第一个元素开始一次和其后元素比较,如果相等,先用一个变量记下这个位置,后面的元素全部向前移动,再从刚才记下的位置继续比较,直到比较完毕,也就是合并完了所有的相同元素。再输出数组就行了。
❿ c语言删除数据中重复的值
int temp=0;
int same=0;
for(int i=0;i<num;i++)
{
for(int j=0;j<=temp;j++)
{
if(strTemp[i].compare(strReturn[j]))
{
same=1;
}
}
if(same==1)
{
same=0;
strReturn[++temp]=strTemp[i];
}
}
最后的strReturn 保存的就是你要的东西,简单写了一下
有些细节 你自己琢磨一下吧