C语言新手:下面的程序用tc3编译运行不通过,请问程序哪里出错了?
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?#include<stdio.h>voidmain(){inti,j,k,a,b,c,e...
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
#include<stdio.h>
void main()
{
int i,j,k,a,b,c,e;
for(i=1;i<=4;i++)
{a=100*i;
for(j=1;j<=4;j++)
{b=10*j;
for(k=1;k<=4;k++)
c=a+b+c+k;
}
}
e=i*j*k;
printf("%d\n,e");
printf("\n%d\n",c);
} 展开
#include<stdio.h>
void main()
{
int i,j,k,a,b,c,e;
for(i=1;i<=4;i++)
{a=100*i;
for(j=1;j<=4;j++)
{b=10*j;
for(k=1;k<=4;k++)
c=a+b+c+k;
}
}
e=i*j*k;
printf("%d\n,e");
printf("\n%d\n",c);
} 展开
展开全部
本来想直接给你做出来,但手机打太慢了,打了五行费了近十分钟,我还是给你说一下哪错了就行了。
第一最明显的错误就是后面的那个输出语句,上楼已经说得很清楚了,你自己看,不解释
第二就是你想使用了嵌套循环输出每个C的值,应该将输出C的语句放在最里面那个循环里,也就是最后那个for里面
第三,按你的算法弄出的三位数里面会有数字重复的,如111,122,221…,应该想办法让j不等于i.k不等于j,如for里面用continue或if把相等的情况除去。
应为第三条,呵呵,所以呢,你的e结果也是错的,同样多加了数字重复的情况。
其实我也是刚学语言,有不对的地方希望高手多多指点
第一最明显的错误就是后面的那个输出语句,上楼已经说得很清楚了,你自己看,不解释
第二就是你想使用了嵌套循环输出每个C的值,应该将输出C的语句放在最里面那个循环里,也就是最后那个for里面
第三,按你的算法弄出的三位数里面会有数字重复的,如111,122,221…,应该想办法让j不等于i.k不等于j,如for里面用continue或if把相等的情况除去。
应为第三条,呵呵,所以呢,你的e结果也是错的,同样多加了数字重复的情况。
其实我也是刚学语言,有不对的地方希望高手多多指点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先不论你的逻辑对不对,你的程序至少有下面这两个问题。
c=a+b+c+k;
这个时候 c 并没有初始化,他的值是不可预测的。
printf("%d\n,e");
打印 e 的值,写法错了,应该为 printf("%d\n“ ,e);
c=a+b+c+k;
这个时候 c 并没有初始化,他的值是不可预测的。
printf("%d\n,e");
打印 e 的值,写法错了,应该为 printf("%d\n“ ,e);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在for循环的时候加一个判断,因为需要无重复数字的三位数
int count = 0;
for(i=1; i<=4; i++)
for(j=1; j<=4 && j!=i ; j++)
{ if(j==i)
continue;
for(k=1; k<=4 ; k++)
{
if( k==i || k==j )
continue;
count++;
printf("%d" , i * 100 + j * 10 + k);
}
}
printf("共有%d个不重复的三位数",count);
这样就保证了 i , j , k 不重复
int count = 0;
for(i=1; i<=4; i++)
for(j=1; j<=4 && j!=i ; j++)
{ if(j==i)
continue;
for(k=1; k<=4 ; k++)
{
if( k==i || k==j )
continue;
count++;
printf("%d" , i * 100 + j * 10 + k);
}
}
printf("共有%d个不重复的三位数",count);
这样就保证了 i , j , k 不重复
追问
虽然你的回答不完全对(你的程序只有12个数,从数学角度看应该有4*3*2=24个数的),但是给了我最大的启发,最终让我发现并改正了错误,真的非常感谢你!同时,也感谢其他回答我的提问的朋友们,真的非常谢谢!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不对啊,你这样写会有重复的数字的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询