‘壹’ 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] = '