在C语言中输入4个一位数,看它能构成几个三位数,并且数字不能重复。谁...
发布网友
发布时间:2024-10-15 00:52
我来回答
共3个回答
热心网友
时间:2024-10-16 03:02
#include <stdio.h>
int main()
{
int a[4];
int count=0;
printf("****请输入*****\n");
for(int i=0;i<4;i++)
{
scanf("%d",&a[i]);
if(a[i]>9)
{
printf("你输入的数中有不是个位数的,请重试\n");
return 1;
}
}
for(int j=0;j<4;j++)
{
for(int k=0;k<4;k++)
{
for(int m=0;m<4;m++)
{
if((j!=k && k!=m && j!=m ) && (a[j]!=a[k] && a[k]!=a[m] && a[j]!=a[m]))
{
count++;
printf("%d\t",a[j]*100+a[k]*10+a[m]);
}
}
}
}
if(count==0)
printf("找不到符合的三位数\n");
else
printf("\n总数为:%d\n",count);
return 0;
}
你采纳一下,看看符合你的要求不,若符合,请支持一下!
热心网友
时间:2024-10-16 02:59
main()
{ int a[4],i,k,v,k1,k2,k3,x,r[64];
for(i=0;i<4;i++)
{ a[i]=11;
while(a[i]>9 || a[i]<0)
{ printf("输入第%d个0--9范围内的整数:",i);
scanf("%d",&a[i]);
}
}
for(k=0,k1=0;k1<4;k1++)
for(k2=0;k2<4;k2++)
for(k3=0;k3<4;k3++)
{ x=a[k1]*100+a[k2]*10+a[k3];
for(v=0,i=0;i<k;i++)
if(r[i]==x) { v=1; break;}
if(v==0) { r[k]=x; k++; }
}
for(i=0;i<k;i++)
printf("%d ",r[i]);
printf("\n能够组成:%d 个三位数。",k);
system("pause");
}
试试看
热心网友
时间:2024-10-16 02:57
在第一个的回答里把
if((j!=k && k!=m && j!=m ) && (a[j]!=a[k] && a[k]!=a[m] && a[j]!=a[m]))
加上一个 &&a[j]!=0
另外数字不可以重复,是指123、123的重复,还是333的重复,如果是前者就要再修改下了。