C语言高手请进!!!!!!!

#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void main()
{
int n,i,j,k,m,c,squ[10][10];
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
for(;;)
{
srand((unsigned)time(0));
n=rand()%1000;
for(k=0;k<i;k++)
for(m=0;m<j;m++)
if(n=squ[k][m])c++;
if(c==1)
{
squ[i][j]=n;
break;
}
}
if(squ[i][j]>=100)
printf("%5d",squ[i][j]);
else if(squ[i][j]>=10)
printf("%3d%d",0,squ[i][j]);
else if(squ[i][j]<10)
printf("%3d0%d",0,squ[i][j]);
}
printf("\n");
}
}

作用是输出一个随机方阵,但在VC++编译环境下运行后完全没反应~~
拜托高手帮忙挑一下错~~

改后的程序:
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void main()
{
int n,i,j,squ[10][10];
srand((unsigned)time(0));

for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
//产生随机数,&&&这部分我帮你改了&&&
n=rand()%1000;
squ[i][j] = n;

//显示部分
if(squ[i][j]>=100)
printf("%5d",squ[i][j]);
else if(squ[i][j]>=10)
printf("%3d%d",0,squ[i][j]);
else if(squ[i][j]<10)
printf("%3d0%d",0,squ[i][j]);
}
printf("\n");
}
}

某次运行结果:
----------------------------------
025 972 001 332 164 873 369 048 165 694
355 043 796 992 162 624 375 317 254 807
933 107 705 679 592 593 412 229 658 614
373 845 574 760 884 521 659 360 527 592
045 805 434 336 068 414 642 199 385 892
596 494 173 550 633 136 901 447 614 777
684 069 401 602 711 707 550 612 862 314
115 723 273 676 720 454 682 377 420 124
162 485 460 264 990 113 980 776 251 008
587 090 783 734 970 232 451 260 989 895

其实我的编程能力也不行,希望我的解答能给你一些帮助
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-08-13
看不懂你中间那一堆循环是干什么用的,把中间那堆都干掉,再把发生器放到循环外面你看看结果是不是符合你的要求了?

#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void main()
{
int i,j,squ[10][10];
srand((unsigned)time(0));
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
squ[i][j]=rand()%1000;
if(squ[i][j]>=100)
printf("%5d",squ[i][j]);
else if(squ[i][j]>=10)
printf("%3d%d",0,squ[i][j]);
else if(squ[i][j]<10)
printf("%3d0%d",0,squ[i][j]);
}
printf("\n");
}
}
第2个回答  2008-08-13
我知道就是在中间排除相同数值的循环那里出了问题。可是改不过来。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网