當前位置:首頁 » 編程語言 » 消除數組裡面重復的數C語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

消除數組裡面重復的數C語言

發布時間: 2023-05-30 18:40:09

c語言中數組中刪除相同的數

在第一個空中填i,第二個空中填a+j.
當找到相同的
元素
時,將位置記錄到j的初始,並將後繼元素依次前移覆蓋相同的元素.
祝學業進步.

⑵ c語言如何刪除數組中重復元素

1
/*
2
思路:
3
將字元串存入字元數組a中,設將值拷貝給數組b,遍歷b的每個元
4
素,與a中的每個元素比較,有相同則b中對應元素置為-1。
5
輸出b中不為-1的元素。
6
*/
7
#include<stdio.h>
8
#include<string.h>
9
char
a[100],b[100];
10
void
Del(int
index,int
len){
11
for(int
i=0;i<len;i++){
12
if(index
==
i)
continue;//下標相同即同一個元素不比較,進入下一個循環
13
if(b[index]
==
a[i])
b[index]=-1;//有相同元素,置值為
-1
14
}
15
}
16
int
main(){
17
gets(a);
18
memcpy(b,a,sizeof(a));//將a的元素拷貝給b
19
int
len=strlen(a);//求a的長度
20
for(int
i=0;i<len;i++){
21
Del(i,len);
22
}
23
for(int
i=0;i<len;i++){//輸出b中非-1的元素
24
if(b[i]!=-1){
25
printf("%c",b[i]);
26
}
27
}
28
return
0;
29
}

⑶ C語言數組去除重復內容

用兩個游標控制,可以方便的實現,參考代碼如下:
#include<stdio.h>
#define SIZE 12
int a[SIZE]={0,0,0,1,2,2,3,4,4,5,5,44};
int main()
{
int i=1,j=0;
while(i<SIZE)
if(a[j]!=a[i]){
++j;
a[j]=a[i];
++i;
} else ++i;

for(i=0;i<=j;++i){
printf("%d",a[i]);
if(i<j)printf(",");
}
return 0;
}

⑷ C語言,刪除數組中的重復元素

#include <stdio.h>
#define N 1000
#define FLAG 0x80000000 /*特殊標記,用最小的負數表示*/
void main( )
{
int r[N], length, i, j;
scanf("%d", &length);
for(i = 0; i < length; i++)
scanf("%d", &r[i]);
for(i = 0; i < length - 1; i++)
{
if(r[i] != FLAG)
{
for(j = i + 1; j < length; j++)
if(r[j] == r[i]) r[j] = FLAG; /*遇到重復值,則先用特殊標記覆蓋它*/
}
}
for(i = 0; r[i] != FLAG; i++); /*找到第一個特殊標記*/
for(j = i + 1; j < length;) /*刪除數列中的特殊標記*/
{
if(r[j] != FLAG) r[i++] = r[j++];
else j++;
}
length = i; /*修改刪除重復值後的數列的長度*/
for(i = 0; i < length; i++)
printf("%-4d", r[i]);
}

⑸ C語言中怎麼刪除數組中相同的數字

#include <stdio.h>#include <stdlib.h>#include <time.h> int simplification(int a[], int n) { int i,j,k; for(i = 0; i < n - 1; ++i) { for(j = i + 1; j < n; ++j) { if(a[i] == a[j]) { for(k = j; k < n - 1; ++k) a[k] = a[k + 1]; --j; --n; } } } return n;} int main() { int a[30],i,n = 30; printf("原數組:\n"); srand((unsigned)time(NULL)); for(i = 0; i < n; ++i) { a[i] = rand()%10; if(i && i % 10 == 0) printf("\n"); printf("%d ",a[i]); } printf("\n"); n = simplification(a,n); printf("去除相同元素後:\n"); for(i = 0; i < n; ++i) { if(i && i % 10 == 0) printf("\n"); printf("%d ",a[i]); } printf("\n"); return 0;}

⑹ c語言有n個整數,去除其中重復的數字

#include<stdio.h>
#defineM1024
voidmain(){inti,j,n,nn,a[M],b;
scanf("%d",&n);if(n>M)n=M;
for(i=0;i<n;i++)scanf("%d",&a[i]);
for(i=nn=1;i<n;i++){
for(j=b=0;j<nn;j++)if(a[i]==a[j]){b=1;break;}
if(b==0){a[nn]=a[i];nn++;}
}
for(i=0;i<nn;i++)printf("%d",a[i]);printf(" ");
}

⑺ c語言問題數組去重

#include<stdio.h>
intmain()
{
intm,n,i,cur,pre;
scanf("%d",&m);

while(m--)
{
scanf("%d",&n);
scanf("%d"液枝,&cur);
pre=cur;
printf("%d",cur);
for(i=1;i<n;i++)
{
scanf("%d",&cur);
if(cur!=pre)
{
pre=cur;
升埋和printf("%d",cur);
}
}
printf(" ");
吵盯}

return0;
}

⑻ C語言刪除數組重復數字

#include "stdio.h"

#include "string.h"

void main()

{

int i,k=1,j=10,a[10]={4,4,4,4,5,4,9,9,9,10};

for(k=i=1;i<10;i++)

{

for(j=0;j<k;j++)

{

if(a[j]==a[i]) break;

}

if(j==k) a[k++]=a[i];

}

printf(" ");

for(i=0;i<k;i++)

{

printf(" %d ",a[i]);

}

(8)消除數組裡面重復的數C語言擴展閱讀:

printf()函數的調用格式為:printf("&lt;格式化字元串&gt;",&lt;參量表&gt;)。

其中格式化字元串包括兩部分內容:一部分是正常字元,這些字元將按原樣輸出;另一部分是格式化規定字元,以"%"開始,後跟一個或幾個規定字元,用來確定輸出內容格式。

參量表是需要輸出的一系列參數,其個數必須與格式化字元串所說明的輸出參數個數一樣多,各參數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。

比如:

int a=1234;

printf("a=%d ",a);

輸出結果為a=1234。

scanf()是C語言中的一個輸入函數。與printf函數一樣,都被聲明在頭文件stdio.h里,因此在使用scanf函數時要加上#include&lt;stdio.h&gt;。

int scanf(const char*restrict format,...);

函數scanf()是從標准輸入流stdin(標准輸入設備,一般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。

⑼ C語言問題 把一個數組中的重復元素去掉

1、首先,點擊桌面上的VC++6.0,打開軟體。

⑽ c語言中怎樣將數組中的所有相同的數都刪除

可以先排個序,然後相鄰元素比較,相同的就通過後邊的向前移動來去掉, 最後參用鏈數的數組這個插入刪除方便且時間少。