當前位置:首頁 » 編程語言 » 無重復語句c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

無重復語句c語言

發布時間: 2022-08-07 13:54:04

『壹』 c語言,我寫的算出來的有重復的,怎麼寫沒重的

#include<stdio.h>
inta[6];
intf()
{
inti,b,c,d;
b=0;c=0;d=0;

// b=a[0]+a[1]+a[2];
// c=a[2]+a[3]+a[4];
// d=a[4]+a[5]+a[0];

for(i=0;i<3;i++)
{
b+=a[i];
c+=a[i+2];
d+=a[(i+4)%6];
}

if((d==b&&b==c)&&c==d)return1;
elsereturn0;
}
voidexch(int*a,int*b)
{
intt;
t=*a;
*a=*b;
*b=t;
}
intf1(intm,intn)
{
inti,j;
if(m<n)
{
for(i=m;i<n;i++)
{

exch(&a[i],&a[m]);
f1(m+1,n);
exch(&a[m],&a[i]);
}
if(m==n-1)
{
if(f()==1)
{
for(j=0;j<n;j++)
printf("%d",a[j]);
printf(" ");
}
}
}
}
voidmain()
{
intn=6;
inti=0;
for(i=0;i<n;i++)
a[i]=i+1;
f1(0,n);
}

『貳』 請c語言大神解惑 編寫一程序,實現從鍵盤輸入兩個字元串str1和str2,要求各串中無重復的字元,求

#include <stdio.h>
#include <string.h>
int repeated(char* str)/*檢查字元串內是否有重復的字元,有就返回1,無就返回0*/
{
int i=0, len=strlen(str)-1;//調用strlen得到字元串的長度
for(i=0; i<len; i++)/*依次查看每個字元在後面是否重復出現*/
if(strchr(str+i+1, str[i]))
return 1;/*一旦發現就立即返回*/
return 0;
}
int main()
{
int i, len, j=0;
char s1[100], s2[100], s3[100];/*保存兩個字元串和交集串*/
char* s[2]={s1,s2};/*用一個數組s來管理s1和s2以便在下面用for循環處理*/
for(i=0; i<2; i++){/*依次輸入兩個字元串*///這里使用do,while循環!因為至少要輸出一次!
do{
printf("請輸入第%d個字元串: ", i+1);
scanf("%s",s[i]);
}while(repeated(s[i])&&printf("串內有重復字元! "));/*檢查是否有重復*/
}
len = strlen(s1);
for(i=0; i<len; i++)/*依次查找s1中的每一個字元是否在s2中存在*/
if(strchr(s2,s1[i]))
s3[j++] = s1[i];/*存在的字元就加入到交集中*/
s3[j] = ''/*添加字元串結束標記,緊記C語言里的字元串一定要加上結束符!*/
if(j>0)
printf("交集為[%s] ", s3);
else
printf("交集為空 ");
return 0;
}

我把注釋都完整了,少年還有不解之處,追問便是!


希望這些能給你提供一點幫助,親!

『叄』 輸入字元串 輸出時去掉重復的 C語言(數組)

#include<stdio.h>

#include<string.h>

main()

{int i,a[127]={0};

char s[100];

printf("Enter a string: ");

gets(s);

for(i=0;i<strlen(s);i++)

if(a[(int)s[i]]==0)

{a[(int)s[i]]=1; printf("%c",s[i]);}

printf(" ");

}


『肆』 c語言去掉重復的數據程序

你的情重復情況下連續的,如果是12365136這種情況下呢!!
你把原程序貼上,我幫你改改吧

修改語句如下:

linklist other;
other=(linklist)malloc(sizeof(lnode));
other->data=H->data;
other->next=H->next;
H->next=other;

『伍』 C語言 輸入一個字元串 去掉重復的字元,輸出無重復的

#include<stdio.h>

#include<string.h>

main()

{int i,a[127]={0};

char s[100];

printf("Enter a string: ");

gets(s);

for(i=0;i<strlen(s);i++)

if(a[(int)s[i]]==0)

{a[(int)s[i]]=1; printf("%c",s[i]);}

printf(" ");

}



『陸』 C語言如何產生不重復的隨機數

用一個數組裝隨機數,一個數組表示已經記錄過的隨機數;

比如說隨機0-8,生成一個隨機8位數組且數組內各項不重復;

例:

intarray[8];

intarrayIndex[8]={0,0,0,0,0,0,0,0};

intk=0;

srand(100);

while(k<8){

intq=rand()%8+1;

if(arrayIndex[q-1]==1){

continue;

}

array[k]=q;

arrayIndex[q-1]=1;

k++;

}

(6)無重復語句c語言擴展閱讀

C語言隨機輸出1~20不重復的隨機數

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

voidmain()

{

inta[20];

inti,j;

srand((int)time(0));

a[0]=rand()%20+1;

for(i=1;i<20;i++)

{

a[i]=rand()%20+1;

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

{

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

{

i--;

}

}

}

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

{

printf("%3dn",a[i]);

}

}

『柒』 c語言如何產生隨機不重復的數,我不重復不知道怎麼寫。怎樣不重復

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{inta[10],i,j,k;
srand(time(NULL));
for(i=0;i<10;i++){//採集10個隨機數
a[i]=rand()%90+10;//隨機數賦值
k=0;//重復個數清零
for(j=0;j<i;j++)//計算重復的個數
if(a[i]==a[j])k++;
if(k!=0)i--;//重復個數不為0,就是有重復的
}//重新產生這個隨機數
for(i=0;i<10;i++)
printf("%4d",a[i]);
}

如圖所示,rand產生不了不重復的隨機數,所以方法就是把產生的重復的去掉。我這里舉個例子,按照這個思路,插入到你的程序里就行了。

望採納。。。。。。

『捌』 C語言中有沒有通用的避免重復輸出的語句如果有,是什麼

應該不存在,但只要在編寫代碼的時候,用適當的語句加以控制,是可以實現的

『玖』 C語言編程 無重復數字

#include<stdio.h>

intunique(intnum,intn)
{
inta[10]={0};
while(num)
{
intbit=num%10;
num/=10;
if(bit==0||bit>n)
return0;
else
{
if(a[bit])
return0;
else
a[bit]=1;
}
}
return1;
}

intmain()
{
intmin,max,n,i;
intcount=0;
scanf("%d%d%d",&min,&max,&n);
for(i=min;i<=max;i++)
{
if(unique(i,n))
{
count++;
printf("%d",i);
if(count%5==0)
printf(" ");
}
}
printf(" ");
return0;
}

『拾』 C語言中無重復輸入的問題

問題的確出在樓主自己說的那個地方,你只需要將代碼當中else後邊的兩句放到一個語句塊內就沒有問題了,即如下所示
if(a[i]!=a[l])
{
i++;
}
else
{
printf("你輸入的數與前面某個數字有重復,請重新輸入。\n");
break;
}
因為 break 會跳出當層for循環,在沒有改動之前,你的for循環只能執行一次比較就(break)退出了。改動之後就可以掃描之前已經輸入的所有數據。
最後建議樓主要有良好的編程習慣,那就是不管if else等後邊的語句有多簡單,都最好用{}包起來,這樣不僅增強了程序的可讀性,更加方便調試。好的編程習慣也是制勝的法寶。