當前位置:首頁 » 編程語言 » c語言數組輸出重復

c語言數組輸出重復

發布時間: 2022-06-18 12:23:04

c語言,查找數組里重復出現的數字;

//如果這題目是在oj上,請去掉所有的注釋
#include<stdio.h>
intmain()
{
//用數組下標1~104表示輸入的數字
//用數組每個元素的值表示該下標對應的元素輸入次數
inta[105]={0},i,n,ni,max;
scanf("%d",&n);
max=a[0];
for(i=0;i<n;i++)
{
scanf("%d",&ni);
a[ni]++;
if(max<a[ni])
max=a[ni];
}
for(i=104;i>0;i--)//想想為什麼倒著比較
{
if(a[i]==0)continue;
if(max==a[i])
{
printf("%d%d ",i,a[i]);
break;
}
}
return0;
}

② c語言如何判斷一個數組中重復元素的個數,並輸出這個個數的值

如下:

#include<stdio.h>
#include<stdlib.h>
intmain()
{
intn;
int*a;
inti;
scanf("%d",&n);
a=(int*)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)
{
for(intj=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
inttmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
inttmp=a[0];
intcount=1;
for(i=1;i<n;i++)
{
if(tmp==a[i])
{
count++;
}
else
{
if(count>1)
{
printf("數組共有%d個數字%d ",count,a[i-1]);
}
tmp=a[i];
count=1;
}
}
if(count>1)
{
printf("數組共有%d個數字%d ",count,a[i-1]);
}
free(a);
return0;
}

我的思路是,先排序,再輸出。

③ 在c語言中輸入數組兩個數組,查找重復元素並輸出怎麼寫啊

可以一次讀入N個數據。可以考慮以回車結束讀入的一組。
參考如下寫法:
#include "stdio.h"
#define Max 100
int X[Max]={0,},Y[Max]={0,};

int main()
{
int i=0,j=0;
int a,b;
char c=0;

printf("輸入第一個數組(以空格分開,回車結束)");
while((c!='\n'))
scanf("%d%c",X+i++,&c);

c=0;
printf("輸入第二個數組(以空格分開,回車結束)");
while((c!='\n'))
scanf("%d%c",Y+j++,&c);

for(a=0;a<i;a++)
for(b=0;b<j;b++)
if(X[a]==Y[b])
printf("%d \t",X[a]);

return 0;
}

④ C語言問題,刪除整型數組內重復的項並輸出,如能解惑,不勝感激。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

intmain(intargc,char*argv[])
{
srand((unsigned)time(0));
ints[30]={0};
inti,j;
for(i=0;i<30;i++)
{
s[i]=rand()%10;
}
printf(" 源數組:");
for(i=0;i<30;i++)
{
printf("%d",s[i]);
}
j=0;
while(j<30)
{
if(s[j]==-32767)
{
j++;
continue;
}
for(i=j+1;i<30;i++)
{
if(s[j]==s[i])
{
s[i]=-32767;
}
}
j++;
}
printf(" 目標數組:");
for(i=0;i<30;i++)
{
if(s[i]!=-32767)
printf("%d",s[i]);
}
return0;
}

⑤ 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);

}

(5)c語言數組輸出重復擴展閱讀

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

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

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

⑥ C語言判斷數組是否重復,

chachong(a[6]);//函數調用int
chachong(int
a[]);//函數聲明這問題需要樓主了解數組知識a[6]只是一個值;而且是一個未定義的值;因為數組a不存在下標為6的元素;建議改為chachong(a);//函數調用int
chachong(int
*a);//函數聲明

⑦ c語言編程:輸出數組中重復出現的數

#include<stdio.h>
intmain()
{inti,j,k=0,k1,p,a[10],b[5];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[j]==a[i])
{p=1;
for(k1=0;k1<k;k1++)
if(a[i]==b[k1])p=0;
if(p)
{printf("%d",a[i]);
b[k++]=a[i];
}
};
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語言如何做

#include<stdio.h>
#defineN8
intmain()
{
inta[N];
inti,j;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("%d",a[0]);
for(i=1;i<N;i++)
{
for(j=0;j<i;j++)
{
if(a[j]==a[i])
break;
if(j==i-1)
printf("%d",a[i]);
}
}
printf(" ");
}

示例運行結果:

4 2 2 6 5 2 4 1

4 2 6 5 1

⑩ 急!!!C語言:輸出兩組數組中相同的數字

//示例代碼如下
#include<stdio.h>
#include<stdlib.h>
intmain()
{
intm,n,i,j,flag=0;
int*pm,*pn;
scanf("%d%d",&n,&m);
pm=(int*)malloc(sizeof(int)*m);
pn=(int*)malloc(sizeof(int)*n);
for(i=0;i<m;i++)
scanf("%d",pm+i);
for(i=0;i<n;i++)
scanf("%d",pn+i);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
if(pm[i]==pn[j]){
printf("%d",pn[j]);
flag=1;
}
}
if(!flag)
printf("NO ");
printf(" ");
free(pm);
free(pn);
return0;
}

//示例運行結果
F:c_work>a.exe
57
5917123698
789161792698
917698

熱點內容
解壓前面簽 發布:2025-02-06 16:02:00 瀏覽:322
華碩訪問點 發布:2025-02-06 15:56:57 瀏覽:330
excel拼接sql 發布:2025-02-06 15:50:10 瀏覽:501
加密手機直播 發布:2025-02-06 15:49:31 瀏覽:534
自帶ftp伺服器好用嗎 發布:2025-02-06 15:26:11 瀏覽:109
win7訪問xp區域網 發布:2025-02-06 15:17:07 瀏覽:524
均線差演算法 發布:2025-02-06 15:13:22 瀏覽:459
androidbrowser 發布:2025-02-06 15:09:49 瀏覽:622
勇敢的心ftp 發布:2025-02-06 15:09:03 瀏覽:327
php日誌分析 發布:2025-02-06 15:08:19 瀏覽:875