A. 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;
}
B. 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. C語言刪除一個整型數組裡面重復的元素
利用雙重循環,將每個值依次與其後面的值相比較,如果有相同的則刪除該元素即可。
刪除時,可以使用將後面元素依次向前移動一位,同時總長度減一的方式。
參考代碼如下:
intremove_repeat(int*a,intl)
{
inti,j,k;
for(i=0;i<l;i++)
{
for(j=i+1;j<l;j++)//對後面每個元素比較,去重。
{
if(a[j]==a[i])//發現重復元素。
{
for(k=j+1;k<l;k++)//依次前移一位。
a[k-1]=a[k];
l--;//總長度減一。
}
}
}
returnl;//返回新的長度值。
}
D. C語言問題,數組去重問題,
int main ()
{
int array[100];
int count = 0;
int result = 0;
int index = 0;
int val = 0;
int i = 0;
printf( "請輸入數組長度及其數組數據:
" );
while( 1 )
{
result = scanf ("%d" , &val);
if( count == 0 )
{
memset(array, 0, sizeof(int)*100 );
count = val;
if(count > 100 || count < 2 )
{
printf( "輸入的數組長度必須大於2並且小於100!
" );
fflush(stdin);
count = 0;
continue;
}
}
else
{
if( val >= 100 || val < 0 )
{
printf( "輸入的數組數據必須為小於100的正整數!
" );
fflush(stdin);
count = 0;
continue;
}
array[val] = 1;
index++;
if( result == 1)
{
if( index == count )
{
break;
}
}
}
}
printf( "排序後的數組長度及其數組數據:
" );
count = 0;
for( i = 0x00 ; i < 100 ; i ++ )
{
if(array[i] == 1 )
count++;
}
printf( "%d", count);
for( i = 0x00 ; i < 100 ; i ++ )
{
if(array[i] == 1 )
printf( " %d", i);
}
printf( "
");
system(" PAUSE");
}
E. c語言中一個一維數組怎樣去重
可以定義兩個數組,將原來數組的不重復的數放到新數組中就可以了.(如果需要也可以釋放原來數組的內存)#include <stdio.h> main() { int a[5]={1,1,2,1,2}; int i,j,k=0, b[5]={0}; for(i=0;i<=4;i++) for(j=0;j<=4;j++) if(a[i]!=b[j]) {b[k]=a[i];k++;} printf("去重後的數組為:"); for(i=0;i<=k-1;i++) printf("a[i]=%d",a[i]); }
F. C語言數組去重演算法
#include <stdio.h> #include <malloc.h> using namespace std ; bool isRepeat(int *arr,int len,int elem) { for(int i = 0 ; i < len ; i++) if(arr[i]==elem) return true ; return false ; } int* delRepeat(int *arr,int len) { int *tar = (int*)malloc(sizeof(int)) ; int temp ; unsigned char i ; unsigned char j = 0 ; tar[j] = arr[0] ; for(i=1;i<len;i++) { if(!isRepeat(tar,j+1,arr[i])) { tar = (int*)realloc(tar,sizeof(int)*(j+2)) ; tar[++j] = arr[i] ; } } return tar ; } int main() { int a[5] = {1,2,2,3,3} ; int *b = delRepeat(a,5) ; return 0 ; }
G. C語言輸入正整數n和n個1~10000之間的整數,對這n個數去重輸入數
#include<stdio.h>
intmain()
{
intn;
intnums[10];
intcount=0;
inttemp;
inti,j;
printf("Entern:");
scanf("%d",&n);
if(n>10||n<1)
n=10;
printf("Enter%dnumber: ",n);
for(i=0;i<n;i++)
{
scanf("%d",&temp);
for(j=0;j<count;j++)
{
if(nums[j]==temp)
break;
}
if(j==count)
nums[count++]=temp;
}
for(i=0;i<count;i++)
printf("%d",nums[i]);
return0;
}
H. c語言中從文件中按行讀取字元串,並進行相應操作。
#include "stdafx.h"
#include "stdio.h"
#define ColNum 4 //總列數
#define QCIndex (1-1) //去重列號
#define PXIndex (3-1) //排序列鎮碰號
typedef struct txtnode{
struct txtnode* next;
char* col[ColNum];
} TXTNODE;
void CopyToNode(TXTNODE*node,char *buf)
{
if(!buf||!*buf) return;
int j,len = strlen(buf);
char *p = (char*)malloc(len+1);
strcpy(p, buf);
node->col[0] = p;
for(j=1; *p&&j<ColNum; p++)
if(*p=='\t')
{
*p++='\0';
if(*p) node->col[j++] = p;
}
if(j<ColNum) node->col[0][0] = '\0';//放棄列數不足的御中談行
}
int findnode(TXTNODE*Head,TXTNODE*node,int colIndex)
{
if(Head)
{
for(TXTNODE*p=Head; p; p=p->next)
if(strcmp(node->col[colIndex], p->col[colIndex])==0) return 1;
}
return 0;
}
int insertNode(TXTNODE**Head,TXTNODE*node,int colIndex)
{
TXTNODE*p0,*p1;
for(p0=NULL,p1=*Head; p1; p0=p1,p1=p1->next)
{
if(strcmp(node->col[colIndex], p1->col[colIndex])>=0)continue; //升序用>=0 降序培賣排則用<=0
if(p0)//插在p0後p1前
{
p0->next=node;
node->next = p1;
}
else//插在開頭
{
*Head = node;
node->next = p1;
}
return 0;
}
if(p0)//插在末尾 p1==NULL
{
p0->next=node;
node->next = NULL;
}
else//第一次調用 走到這里
{
*Head = node;
node->next = NULL;
}
return 0;
}
void deleteLink(TXTNODE**Head)
{
TXTNODE *p0,*p1;
p1 = *Head;
while(p1)
{
p0 = p1;
p1=p1->next;
free(p0->col[0]);
free(p0);
}
*Head = NULL;
}
void writeLink(TXTNODE*Head,FILE*wfp)
{
TXTNODE *p0=Head;
int i;
while(p0)
{
for(i=0; i<ColNum-1; i++)
fprintf(wfp,"%s\t",p0->col[i]);
fprintf(wfp,"%s",p0->col[i]);
p0=p0->next;
}
}
TXTNODE* readTxt(FILE*rfp)
{
char buf[10240]={0};
TXTNODE* head=NULL, *tmp;
while(!feof(rfp))
{
fgets(buf,10240,rfp);
if(!*buf) continue;
tmp=(TXTNODE*)malloc(sizeof(TXTNODE));
memset(tmp,0,sizeof(TXTNODE));
CopyToNode(tmp,buf);
if(tmp->col[0][0] && !findnode(head, tmp, QCIndex))
{
insertNode(&head, tmp, PXIndex);
}
else
{
free(tmp->col[0]);
free(tmp);
}
}
return head;
}
void main(int argc,char*argv[])
{
FILE *rfp,*wfp;
TXTNODE*Head = NULL;
if(argc<3){printf("去重排序小程序,調用格式:\n命令名 源文件 目標文件");exit(-1);}
rfp = fopen(argv[1],"rb");
if(rfp==NULL){printf("源文件[%s]打不開",argv[1]);exit(-2);}
wfp = fopen(argv[2],"wb");
if(wfp==NULL){fclose(rfp);printf("目標文件[%s]打不開",argv[2]);exit(-2);}
Head = readTxt(rfp);
writeLink(Head,wfp);
fclose(rfp);
fclose(wfp);
deleteLink(&Head);
printf("處理完畢!\n");
}
//VC7下調試運行通過,功能正常 方便改造
//我閑得蛋痛了,花一兩小時時間給你做這小程序(調試費了好一會才通過),沒有分送,大大的不值
I. C語言關於去重和排序
建議你先排序,再去重。這樣檢查後一個元素與前一個元素相同則刪除,否則留著,多簡單!~
J. 數組去重是什麼
去重,通常為去重計算、頁面去重。
去重計算指在不同的時間維度內,重復一個行為產生的數據只計算一次,按照時間維度去重包括按小時去重、按日去重、按周去重、按月去重或按自選時間段去重。
例如:訪客數的去重計算是,同一個訪客在所選時間段內產生多次訪問,只記錄該訪客的一次訪問行為,訪客數進記錄為1。若選擇的時間維度為「按天」,則同一個訪客在當日內產生的多次訪問,訪客數記錄為1。
數組的注意事項:
1、 數組中每個元素的數據類型必須相同,對於帶薯inta[4],每個元素都必須為 int。
2、 數組長度 length最好是整數或者常量蠢襲者表達式,
3、 訪問數組元素禪脊時,下標的取值范圍為 0 ≤ index < length。