| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1184 人关注过本帖
标题:[求助] 这也是作业 -_-!
只看楼主 加入收藏
chenfuyuxin
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-10-11
收藏
得分:0 

谢谢谢谢,我看着还是有点头大,学习了先

“路漫漫其修远兮……

2006-12-03 15:17
chenfuyuxin
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-10-11
收藏
得分:0 
以下是引用zhanghuan_10在2006-12-3 14:55:26的发言:
理解错误!抱歉!

嘻嘻,没关系,是我表达能力有限:
从1-9这9个数中输入9个数字,(可以重复也可以不重复,如1,5,4,6,6,9,7,7,7,)
然后从这9个数中(每个都用到,且不能多用)找出符合"c=(b=a*2)*2"规定的3个3位数
if 有,列出;
if 没有,提示“bu cun zai”

2006-12-03 15:37
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 

可以重复,那就多了

#include <stdio.h>

int cheak(int *num)
{
int i, j, t;

for (i = 0; i < 3; i++)
{
t = num[i];
for (j = 0; j < 3; j++)
{
if (t % 10 == 0)
return 0;
t /= 10;
}
}
return 1;
}

int main()
{
int i;
int num[3];

for (i = 100; i < 1000/4; i++)
{
num[0] = i;
num[1] = 2 * i;
num[2] = 4 * i;
if (cheak(num))
printf("a = %d, b = %d, c = %d\n", i, 2 * i, 4 * i);
}
return 0;
}


2006-12-03 15:46
chenfuyuxin
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-10-11
收藏
得分:0 
老大,俺好像不是这个意思吧?
俺是说,输入的9个非0的数字可以重复,
输出结果里面都用到这9个啊!
2006-12-03 16:12
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
对本题,你输入的是1-9,
是不存在满足你条件的数

2006-12-03 16:15
a813649
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-8-12
收藏
得分:0 

给个思路.先算出1-9组成3个随即数有多少种 然后取出一个为a ,算a*2 如果有那三位数
再给b,c 同理;
去1-9随即数:
定义个数组:s[?] (9取3是多少不知道,概率忘光了。)
for(i=1;i<=9;i++)
for(j=1;j<9;j++)
{
if(j == i) continue;
for(k=1;k<9;k++)
{
if(k==j || k==i) continue;
s[n] = i * 100 + j* 10 + k;
n++;
}
}
接下来就是到数组里取数找数
因为偶不知道有多少个数 所以效率不能保证
如果有不对 还望高手指点

2006-12-04 11:43
财鸟
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2006-11-2
收藏
得分:0 

可以重复使用里面的数吗??????????????????????????

2006-12-04 11:54
a813649
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-8-12
收藏
得分:0 
a = 128 b = 256 c =512
a = 132 b = 264 c =528
a = 134 b = 268 c =536
a = 137 b = 274 c =548
a = 142 b = 284 c =568
a = 143 b = 286 c =572
a = 156 b = 312 c =624
a = 157 b = 314 c =628
a = 158 b = 316 c =632
a = 162 b = 324 c =648
a = 163 b = 326 c =652
a = 178 b = 356 c =712
a = 182 b = 364 c =728
a = 184 b = 368 c =736
a = 187 b = 374 c =748
a = 213 b = 426 c =852
a = 214 b = 428 c =856
a = 216 b = 432 c =864
a = 218 b = 436 c =872
所能得到的数 没有经过比较的..可以看出这个无解
2006-12-04 12:26
blackbrod
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2006-10-24
收藏
得分:0 
//把1,2,3,4,5,6,7,8,9,这9个数字分成3组,组成a,b,c,3个3位数,要求a×2=b,b×2=c;
#include <stdio.h>
bool Checknum(int a,int b,int c);
main()
{
int number,num1,num2,num3;
for(num1=123;num1<987;num1++)
{
for (num2=123;num2<987;num2++)
{
for (num3=123;num3<987;num3++)
{
if (!Checknum(num1,num2,num3))
{
break;
}
else if (num1*2==num2&&(num2*2==num3))
{
printf("%d%d%d",num1,num2,num3);
//getch();
}
else
{
break;
}
}
}
}
}
bool Checknum(int num1,int num2,int num3)
{
int s[9];
int i,j;
s[0]=num1%10;
s[1]=(num1/10)%10;
s[2]=num1/100;
s[3]=num2%10;
s[4]=(num2/10)%10;
s[5]=num2/100;
s[6]=num3%10;
s[7]=(num3/10)%10;
s[8]=num3/100;
for (i=0;i<9;i++)
{
for (j=i;j<9;j++)
{
if (s[i]==s[j])
{
return false;
}
}
}
return true;
}
我用win-TC,和C-Free3。5都没运行起来,
是不是循环太多了?请教
2006-12-04 15:19
w362034710
Rank: 1
等 级:新手上路
帖 子:169
专家分:0
注 册:2006-12-2
收藏
得分:0 
# include<stdio.h>
void judge_print(int *a);
void sort(int *a);
void convert_print(int aa,int b,int c);
int compare(int *a,int *w);
int a[9];
int h=0;
void main()
{
int i;
printf("input the array of numbers:");
for(i=0;i<9;i++)
scanf("%d",&a[i]);
judge_print(a);
return;
}
void sort(int *a)
{
int i,j,temp=0;
for(i=0;i<8;i++)
for(j=i+1;j<9;j++)
{
if(a[i]>=a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
void judge_print(int *a)
{
int m,n,i,aa,b,c;
sort(a);
m=a[0]*100+a[1]*10+a[2];
n=a[8]*100+a[7]*10+a[6];
if((m*4)>n)
printf("bu cun zai1\n");
else {
for(i=m;i<(n/4);i++)
{
aa=i;
b=2*aa;
c=4*aa;
convert_print(aa,b,c);
}
if(h==0)
printf("bu cun zai2\n");
}
}
void convert_print(int aa,int b,int c)
{
int w[9],d[3],k=0,i,j;
d[0]=aa;
d[1]=b;
d[2]=c;
printf("\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
w[k++]=d[i]%10;
d[i]=d[i]/10;
}
sort(w);
if(compare(a,w))
{
printf("a=%d,b=%d,c=%d",aa,b,c);
++h;
}
}
int compare(int *a,int *w)
{
int i;
for(i=0;i<9;i++)
if(a[i]!=w[i])
return 0;
return 1;
}
这个在VC++ 6.0能通过,,只是运行的结果不好看,,自动会空一行,,也不知道为什么
2006-12-05 10:24
快速回复:[求助] 这也是作业 -_-!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017793 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved