读书人

急帮小弟我解释为什么这个地方do n =

发布时间: 2012-03-28 15:40:03 作者: rapoo

急急急!!!!!帮我解释为什么这个地方do n = rand()%10 ; while (n >=3);
#include <stdio.h>
#include <stdlib.h>
#define N 5
void fun (int a[][N], int n)
{ int i,j;
for (i =0; i<N; i++)
{ for (j =0; j<=i; j++)
a[i][j]*=n;
}

}
NONO()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
int i, j, n, a[5][5] ;
rf = fopen("in.dat", "r");
wf = fopen("out.dat", "w");
for(i = 0 ; i < 5 ; i++)
for(j = 0 ; j < 5 ; j++)
fscanf(rf, "%d ", &a[i][j]);
fscanf(rf, "%d", &n);
fun(a, n);
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) fprintf(wf, "%4d", a[i][j]);
fprintf(wf, "\n");
}
fclose(rf);
fclose(wf);
}
main ()
{int a[N][N], n, i, j;
printf("***** The array *****\n");
for (i =0; i<N; i++)
{for (j =0; j<N; j++)
{a[i][j] = rand()%10; printf("%4d", a[i][j]);}
printf("\n");
}
do n = rand()%10 ; while (n >=3);
printf("n = %4d\n",n); fun (a, n);
printf ("***** THE RESULT *****\n");
for (i =0; i<N; i++)
{for (j =0; j<N; j++) printf("%4d", a[i][j]);
printf("\n");
}
NONO();
}
程序实现功能:使数组左下三角元素中的值乘以n ,我不明白为什这个地方的while循环要求n>=3,我改为0发现还真的不能执行?各位高手?帮我解释为什么这个地方do n = rand()%10 ; while (n >=3);
printf("n = %4d\n",n)????????????????????急急急

[解决办法]

探讨

引用:

引用:
do
{
}
while()啊
知道啊,当时我试了好几次都是2没有n=1的,然后吧while(n>=3)的3改成9,8,7,6,5,4,结局都是n=2???????????????????????


因为开始n没被初始化,这个do while就是为了保证最终得到的n一定是大于等于3的;……

[解决办法]
探讨
引用:
do
{
}
while()啊
知道啊,当时我试了好几次都是2没有n=1的,然后吧while(n>=3)的3改成9,8,7,6,5,4,结局都是n=2???????????????????????

[解决办法]
do...while前加上 srand(time(0));
主要要包含头文件 #include "time.h"
[解决办法]
探讨
引用:

引用:
do
{
}
while()啊
知道啊,当时我试了好几次都是2没有n=1的,然后吧while(n>=3)的3改成9,8,7,6,5,4,结局都是n=2???????????????????????


因为开始n没被初始化,这个do while就是为了保证最终得到的n一定是大于等于3的;
……

[解决办法]
随机数不是真正的随机,它是有一定规律的

读书人网 >C语言

热点推荐