#include<stdio.h>
int main()
{int a[9],i,j,k,t,b,c,d,e,p = 1;
for(i=123 ;i <= 327 ; i++)
{b = i;
a[0] = b % 10;
b = b / 10;
a[1] = b % 10;
b = b / 10;
a[2] = b;
c = 2 * i;
a[3] = c % 10;
c = c / 10;
a[4] = c % 10;
c = c / 10;
a[5] = c;
d = 3 * i;
a[6] = d % 10;
d = d / 10;
a[7] = d % 10;
d = d / 10;
a[8] = d;
for(j = 0 ; j < 9 ; j++)
{for(k = j + 1 ; k < 9 ; k++)
{if(a[j] == a[k])
p = 0;}}
if(p)
{for(t = 0 ; t < 9 ; t++)
{printf("%d",a[t]);
if(e % 3 == 0)
printf("\n");
e++;}}}
return 0;}
用1-9组成三个1:2:3的三位数,要求数字不重复的c代码,求改错。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- qwerwww 2016-11-07 04:39关注
我给你简单说一下:
要满足1:2:3各位都必须满足相应得倍数关系
for(i=123 ;i <= 327 ; i++){
...
}
没有完全获取所得的数字,且操作的数字应为3位,不是9位。
要满足 1:2:3 各位不能重复
for(j = 0 ; j < 9 ; j++)
{for(k = j + 1 ; k < 9 ; k++)
这样是错误的,各个位数不重复不代表各个结果数字之间不重复,比如说123和246都满足条件,但123中有2,246中也有2,这是不冲突的。
最后
for(t = 0 ; t < 9 ; t++)
{printf("%d",a[t]);
if(e % 3 == 0)
printf("\n");
e++;}
e没有初始化,e % 3没有意义。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 MATLAB动图问题
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名