主题:[原创]问题
caploog
[专家分:0] 发布于 2011-02-11 20:13:00
题目给一位数组赋15个0-19的随机数。代码如下:
#include<stdio.h>
#include<stdlib.h>
void getdata(int *);
main()
{
int a[15],i;
getdata(a);
for(i=0;i<15;i++)
printf("%3d",a[i]);
printf("\n");
}
void getdata(int *a)
{
int i,j,x;
a[0]=rand()%19;
for(i=0;i<14;)
{
x=rand()%19;
for(j=0;j<=i&&x!=a[j];j++);
if(j==i+1){a[i+1]=x;i++;}
}
}
代码结束。
while(j<=i&&x!=a[j])j++;
for(j=0;j<=i&&x!=a[j];j++);
内层否循环用这两个时得出正确结果。
换成
/*for(j=0;j<=i;j++)if(x=a[j])break; */
此时编译通过,但系统长久给不出答案,
跪求解释?
回复列表 (共3个回复)
沙发
caploog [专家分:0] 发布于 2011-02-12 02:16:00
不好意思,写错了,少写个=。
是软件出毛病了,代码没错,发帖子的时候整错了。
板凳
caploog [专家分:0] 发布于 2011-02-12 02:19:00
[code=c]
#include<stdio.h>
#include<stdlib.h>
void getdata(int *);
main()
{
int a[15],i;
getdata(a);
for(i=0;i<15;i++)
printf("%3d",a[i]);
printf("\n");
}
void getdata(int *a)
{
int i,j,x;
a[0]=rand()%19;
for(i=0;i<14;)
{
x=rand()%19;
for(j=0;j<=i&&x!=a[j];j++);
if(j==i+1){a[i+1]=x;i++;}
}
}
[/code]
3 楼
yxqyrh [专家分:1070] 发布于 2011-02-12 09:29:00
其实代码还是有几个错误滴
我来回复