⑴ 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)數據結構c語言刪除重復值代碼擴展閱讀:
printf()函數的調用格式為:printf("<格式化字元串>",<參量表>)。
其中格式化字元串包括兩部分內容:一部分是正常字元,這些字元將按原樣輸出;另一部分是格式化規定字元,以"%"開始,後跟一個或幾個規定字元,用來確定輸出內容格式。
參量表是需要輸出的一系列參數,其個數必須與格式化字元串所說明的輸出參數個數一樣多,各參數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。
比如:
int a=1234;
printf("a=%d ",a);
輸出結果為a=1234。
scanf()是C語言中的一個輸入函數。與printf函數一樣,都被聲明在頭文件stdio.h里,因此在使用scanf函數時要加上#include<stdio.h>。
int scanf(const char*restrict format,...);
函數scanf()是從標准輸入流stdin(標准輸入設備,一般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
⑵ 求C語言代碼,刪除字元串中重復字元 如輸入"aabbcc",要求輸出"abc"
字元也可以使用整數來表示,其實整數0-255用%c來輸出就是字元。
#include <stdio.h>
int main() {
char s[256]; /*初始化了一個數組來存放輸入的串*/
int i = 0, tmp[256] = {0}; /*tmp是一個256個整型數組,初始化成全0*/
printf("Enter the string :\n");
gets(s); /*將輸入的串存到s中*/
/*分析每個輸入的字元,如果字元是'a' 則a=97,那麼 tmp[97]將置成1 ,如果下一個字元串還是
'a',那麼同樣tmp[97]置成1,如果下一個字元是'b',那麼tmp[98]將置成1......*/
while(s[i] != '\0')
tmp[s[i++]] = 1;
puts("\nAfter sort and delete operation:");
/*順序輸出255個字元中s串中包含的字元*/
for(i = 0; i < 256;i++)
if(tmp[i])
printf("%c", i);
return 0;
}
那麼等於是說全部ascii字元集是256個,如果有哪個字元那麼就把它標記上,然後再從0開始順序輸出就可以了。
⑶ 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語言,定義一個數組存放一些數,再輸入數x,把重復的數字刪掉再輸出。
#include<stdio.h>
#include<string.h>
voiddog(char*p,intn);
intmain()
{
intn;
chara[11]="0223456889";
printf("請輸入想刪除的數 ");
scanf("%d",&n);
dog(a,n);
puts(a);
return0;
}
voiddog(char*p,intn)
{
inti,j,k;
k=strlen(p);
for(i=0;i<k;i++)
{
if(*(p+i)==n+'0')//<==================
{
for(j=i;j<k;j++)//<==================
{
*(p+j)=*(p+j+1);
}
k--;
i--;//<======================
}
}
*(p+k)='