数组中去掉重复数c
2023-01-21阅读(690)
问:C语言中,如何用删除法删除数组中相同的数字
- 答:要是想用牛刀的话,可以用vector 或list.哈哈哈.
- 答:void main()
{
int i,t,n=10; /*n为数组的体积*/
int a[10]={1,3,3,2,5,1,1,5,2,6};
for(int m=0;m<n;m++)
{
t=a[m];
for(i=m+1;i<n;i++)
{
if (t==a[i]) /*判断是否有相同的*/
{
for(int j=i+1;j<n;j++)a[j-1]=a[j];/*后面的数替代前面的*/
n--;
i--;
}
}
}
for(i=0;i<n;i++)printf("%d",a[i]); /*输出*/
} - 答:main()
{ int i,j,t;
int a[10]={1,3,3,2,5,1,1,5,2,6};
t=a[0]; /*把第一个数赋给t*/
for(i=1;i<10;i++)
{
if (t==a[i]) /*判断是否有相同的*/
{for(j=0;j+i<9;j++)/*用循环进行删除*/
a[i+j]=a[i+j+1];/*后面的数替代前面的*/
a[9]=0;} /*后面补0*/
t=a[i+1]; /*把下一个数赋给t*/
}
for(i=0;i<10;i++)/*输出*/
printf("%d",a[i]);
} - 答:才5分啊
让别人抢去吧 - 答:#include<stdio.h>
int main()
{
char a[10];
int i,j;
printf("请输入数字\n");
scanf("%s",a);
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]==a[j]) a[j]='#'; //用于标识
}
}
for(i=0;i<10;i++)
{
if(a[i]!='#') printf("%c",a[i]);//用于选择怎么打出
}
printf("\n");
getchar();
getchar();
}
问:C语言中数组中删除相同的数
- 答:在第一个空中填i,第二个空中填a+j.
当找到相同的
元素
时,将位置记录到j的初始,并将后继元素依次前移覆盖相同的元素.
祝学业进步.
问:C语言删除数组重复数字
- 答:2233,233 23。
这是什么???? - 答:#include<iostream>
using namespace std;
void main()
{
char*p="22233";
for(int i=0;i<strlen(p)-1;i++)
{
for(int j=i+1;j<strlen(p);j++)
{
if(p[i]==p[j])
{
for(int k=j-1;k<strlen(p);k++)
p[k+1]=p[k];
j--;
}
}
}
cout<<p<<endl;
} - 答:做一个循环对数组进行遍历,第二个循环对第一个循环遍历出来的数字进行比较
删除相同的就好了
C语言还有一个简单的方法,但是我现在还没有见到过直接使用的人 - 答:#include <stdio.h>
#include <string.h>
char s[100];
int main() {
int i, ok;
scanf("%s", s);
do {
ok = 1;
for (i = 1; s[i]; i++) {
if (s[i] == s[i-1]) {
ok = 0; strcpy(&s[i-1], &s[i]); break;
}
}
if (!ok) printf("%s\n", s);
} while (!ok);
return 0;
} - 答:给:
#include<conio.h>
#include<stdio.h>
void main()
{
char c,temp='*';
int num[20]={0},i=0,j,count=0,number=0;
printf("please input: ");
c=getch();
while(c!='\r')
{
printf("%c",c);
if(temp=='*')
{
temp=c;
num[i++]=c-'0';
}
else
{
if(temp!=c) num[i++]=c-'0';
}
temp=c;
c=getch();
}
printf("\n");
for(j=0;j<i;j++)
number=number*10+num[j];
printf("num = %d",number);
getch();
}