導航:首頁 > 編程語言 > 編程怎麼去掉相同的數

編程怎麼去掉相同的數

發布時間:2022-09-19 10:18:40

A. 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]);

}

(1)編程怎麼去掉相同的數擴展閱讀:

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(標准輸入設備,一般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。

B. 跪求高人幫我一個C語言編程,從A、B數列中刪除相同數的演算法

lovelywizard的思路不錯,把他的思路用C語言實現如下:

#include<stdio.h>

#defineMAXN10/*數列的最大個數*/

intInputArr(charname,int*x)

{inti,count;

printf("%c數列大小:",name);

scanf("%d",&count);

printf("請輸入數列%c的元素,共有%d個元素:",name,count);

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

scanf("%d",x+i);

returncount;

}

voidDelArrAt(int*x,int*pn,intpos)

{inti;

for(i=pos;i<*pn-1;i++)

x[i]=x[i+1];

*pn=*pn-1;

}

intDelFromArr(int*x,int*pn,inty)

{inti;

for(i=0;i<*pn;i++)

if(x[i]==y)

{DelArrAt(x,pn,i);

return1;

}

return0;

}

voidPrtArr(charname,int*x,intn)

{inti;

printf("%c數組為:",name);

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

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

printf(" ");

}

main()

{

inta[MAXN],b[MAXN],n,m,i;

charaTag[MAXN]={0};/*對應於a數組的刪除邏輯尺,0--不刪除,1--要刪除*/

n=InputArr('a',a);

m=InputArr('b',b);

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

if(DelFromArr(b,&m,a[i]))aTag[i]=1;

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

{if(aTag[i])DelArrAt(a,&n,i);

}

PrtArr('a',a,n);

PrtArr('b',b,m);

}

C. 一個數組中有n個數,編寫程序去除其中重復的數字(重復數字值保留1個),並輸出結果。

#include<stdio.h>
#defineN9

intmain()
{
intnumber[N]={-1};
intpos=0,input=0,i=0;
while(input++<N)
{
intn=0,repeat=0;
scanf("%d,",&n);
for(i=0;i<pos;++i)
{
if(n==number[i])
{
repeat=1;
break;
}
}
if(!repeat)number[pos++]=n;
}
for(i=0;i<pos;++i)printf("%d",number[i]);
return0;
}

D. python列表怎麼去掉相同的數

利用set()函數,可以將列表去重,如:
s = [1, 3, 3, 5, 7, 7, 8, 9]
set(s) #輸出為{1, 3, 5, 7, 8, 9}
list(set(s)) #輸出 [1, 3, 5, 7, 8, 9]

E. excel 用VBA如何刪除一列中的重復數據

1、打開要進行數據處理的表格,

F. c語言排序後刪除數組中重復的數字再排序輸出

#include<stdio.h>

#include<string.h>

#defineSIZE81

voiddelete_repeat(char*str);

voidbubble_sort(char*str);

intmain()

{

charstr[SIZE];

gets(str);

delete_repeat(str);

bubble_sort(str);

puts(str);

return0;

}

//刪除重復字元

voiddelete_repeat(char*str)

{

/**判斷數組內第i個字元是否與前i-1個字元存在重復:

若重復,刪除該字元,i之後的字元下標均減1,後重新判斷新的第i個字元

若不重復,不做處理,繼續遍歷下一個

*/

for(inti=1;str[i]!='';i++){

for(intj=0;j<i;j++)

{

if(str[i]==str[j])

{

for(intk=i;k<strlen(str)-1;k++)

{

str[k]=str[k+1];

}

str[strlen(str)-1]='';

i--;

}

}

}

}

//冒泡排序

voidbubble_sort(char*str)

{

intswap;

chartemp;

intk=strlen(str);

do{

swap=0;

for(inti=0;i<k-1;i++){

if(str[i]>str[i+1])

{

swap=1;

temp=str[i];

str[i]=str[i+1];

str[i+1]=temp;

}

}

k--;

}while(k>0&&swap);

}

(6)編程怎麼去掉相同的數擴展閱讀

刪除排序數組中的重復項注意事項

不要使用額外的數組空間,必須在原地修改輸入數組並在使用O(1)額外空間的條件下完成,意味著不能通過新建數組存放的方式解決。

可以考慮增加一個游標的方式(命名為:index),遍歷整個數組,當遇到前一個和後一個不相等的時候就給游標自增,這樣的話對於相同的元素可以直接跳過不統計,最後返回」游標的大小+1「(也即不重復的元素的個數)。

G. 從鍵盤輸入10個數,刪除相同的數,用C語言怎樣編程

只說思路。
將這些數保存到一個數組里。
然後從第1個開始挨個跟後面的數相比較,如果有一樣的就將那個數後面的所有的數賦給它們前面的數,將數組下標減1.
最後按照下標大小循環輸出這個數組就可以了。

H. C++中怎麼去掉一個數組中重復的數,求高手解答。

1,創建二個int型數組,一個保存你從鍵盤上輸入的數,另一個用於排序
2,循環
3,如果遇到相同的,continue,進行下一個
4,如果不相同,進入第二個循環:把這個數和第二個數組的數進行比較,比其小的話比較下一個,大的話和其交換,然後拿交換後的數,比較下一個
5,第二個數組中的數,就是從大到小並且沒有重復的數字

I. c++問題,刪除數據中重復的數據

你的程序錯誤很大,把整型數組當作字元串數組來對待了!
在你的基礎上進行了優化,自己研究一下吧
#include<iostream>
usingnamespacestd;
#defineNMAX500
intmain(){
inta[NMAX],i,j,k,c;
while(cin>>a[0]){
for(i=1;i<NMAX;i++)
{
cin>>a[i];
if(cin.get()==' ')break;
}
c=i+1;

for(i=0;i<c;i++)
for(j=i+1;j<c;j++)
if(a[i]==a[j])
{
for(k=j;k<c-1;k++)a[k]=a[k+1];
c--;//數組長度減小1
j--;//要再從原j位置開始檢查,不然有兩個相鄰的數與a[i]相同會漏掉
}
for(i=0;i<c-1;i++)cout<<a[i]<<"";
cout<<a[c-1]<<endl;
}
return0;
}

J. c++編寫程序刪除一個一維數組中相同的多餘元素,即值相同的元素只保留一個

#include <stdio.h>

int a(int b[],int n);

void inout(int a[],int n);

void inout(int a[],int n)

{

int i;

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

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

}

int a(int b[],int n)

{

int i,j,k;

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

{

for(j=i+1;j<n;j++)

{

if(b[i]==b[j])

{

--n;

for(k=j;k<n-1;k++)

{

b[k]=b[k+1];

}

}

}

}

return n;

}

int main()

{

int i;

int n;

int b[100]={1,2,4,3,5,6,3,8,8,4};

n=10;

n=a(b,n);

inout(b,n);

printf("%d ",n);

}

(10)編程怎麼去掉相同的數擴展閱讀:

main()函數用法:

大多數UNIX系統對main函數提供了三個參數,原型如下:

intmain(intargc,char*argv[],char*env[]);

其中第三個參數是環境表地址。

ANSIC規定main函數只有兩個參數,而且第三個參數與全局變數environ相比也沒有帶來更多益處,所以POSIX.1也規定應使用environ而不使用第三個參數。

通常用getenv和putenv函數來存取特定的環境變數,而不是用environ變數。

main函數的原型多是下面這種形式:

intmain(intargc,char*argv[]),參數argc代表了輸入參數的個數,char*argv[]表示傳入的參數的字元串,是一個字元串數組。

例如在linux平台下編寫一個小程序:

int main(intargc,char*argv[])

int i;

printf("argc:%d\n",argc);

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

printf("argv[%d]:%s\n",i,argv[i]);

exit(0);

用gcc編譯後形成一個a.out的可執行的文件,運行a.out,其結果是:

argc=1,argv[0]=」a.out」

運行的程序的文件名,也佔用一個參數位置,也就是說argv數組中的第一個單元指向的字元串總是可執行程序的名字,以後的單元指向的字元串依次是程序調用時的參數。這個賦值過程是操作系統完成的,只需要拿來用就可以了。

命令行參數的提交中,系統會自動給指針數組後加上一個NULL,所以for(i=0;i<argc;i++)這句也可以換成while(*argv!=NULL)

int main(intargc)省略其它參數的定義也是可以的,這樣運行時候argc就直接返回參數個數,而不返回其它。

運行命令行參數帶有char*argv[]的時候,如果輸入參數帶有空格,應該用雙引號括起來。

閱讀全文

與編程怎麼去掉相同的數相關的資料

熱點內容
壓縮因子定義 瀏覽:966
cd命令進不了c盤怎麼辦 瀏覽:212
葯業公司招程序員嗎 瀏覽:972
毛選pdf 瀏覽:657
linuxexecl函數 瀏覽:725
程序員異地戀結果 瀏覽:372
剖切的命令 瀏覽:226
干什麼可以賺錢開我的世界伺服器 瀏覽:288
php備案號 瀏覽:989
php視頻水印 瀏覽:166
怎麼追程序員的女生 瀏覽:487
空調外壓縮機電容 瀏覽:79
怎麼將安卓變成win 瀏覽:459
手機文件管理在哪兒新建文件夾 瀏覽:724
加密ts視頻怎麼合並 瀏覽:775
php如何寫app介面 瀏覽:804
宇宙的琴弦pdf 瀏覽:396
js項目提成計算器程序員 瀏覽:944
pdf光子 瀏覽:834
自拍軟體文件夾名稱大全 瀏覽:328