c语言怎么求题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
#include<stdio.h>
int main(void){
int a,b,c,count=0;
printf(" ");
for(a=1;a<=4;a++)
for(b=1;b<=4;b++)
for(c=1;c<=4;c++)
{
if(a!=b&&a!=c&&b!=c)
count++;
printf("%d,%d,%d ",a,b,c);
}
printf("%d",count);
return 0;
}
以上程序得出结果是对的,但为什么把count++;放到printf("%d,%d,%d ",a,b,c);后面得到的结果是64,
我一向建议,初学c语言不要省略条件判断单条语句中的{}
你上面的程序 ,循环中完整的应该是
if(a!=b&&a!=c&&b!=c)
{
count++;
}
printf("%d,%d,%d ",a,b,c);
这个计数结果是对的,但输出的排列是错的,你把它改为
if(a!=b&&a!=c&&b!=c)
printf("%d,%d,%d
",a,b,c);
count++;
输出对了,但计数肯定是不对的,因为它来在条件下面执行
正确的应该是
if(a!=b&&a!=c&&b!=c)
{
printf("%d,%d,%d ",a,b,c);
count++;
}
也可以是
if(a!=b&&a!=c&&b!=c)
{
count++;
printf("%d,%d,%d ",a,b,c);
}
热门标签: