Генерация случайных чисел в заданном диапазоне - C (СИ)

Узнай цену своей работы

Формулировка задачи:

  #include <stdio.h>
 #include <conio.h>
 #include <stdlib.h>
 int main()
{
clrscr();
textcolor(RED);
unsigned long  iran;
unsigned long   rand_a, rand_c,rand_m;
unsigned long    jran,max;
int i,j,i1,j1;
unsigned long  a[6][6];
rand_m=233280;
rand_a=9301;
rand_c=49297;
for (i=0;i<6;i++){
  printf("\n");
   for(j=0;j<6;j++) {
 iran=(iran*rand_a+rand_c)%rand_m;
 jran=0+(65157*iran)%rand_m;
 a[i][j]=jran;
 printf("%7d",a[i][j], ",") ;
 if(a[i][j]>max){
 max=a[i][j],i1=i+1,j1=j+1;
 }
   }
     }
 printf("\n\n max=%d i=%d j=%d ", max, i1,j1 );
 getch();
 return 0;
 
}
почему-то генерирует числа не из диапазона 0..65157 и неверно выводит место максимального элемента ,заранее спасибо

Решение задачи: «Генерация случайных чисел в заданном диапазоне»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
   unsigned long iran = 0;
   unsigned long rand_a, rand_c, rand_m;
   unsigned long jran, max = 0;
   int i, j, i1 = 0, j1 = 0;
   unsigned long  a[6][6];
   rand_m = 233280;
   rand_a = 9301;
   rand_c = 49297;
   for (i = 0; i < 6; i++)
   {
      for (j = 0; j < 6; j++)
      {
         iran = (iran * rand_a + rand_c) % rand_m;
         jran = (65157 * iran) % rand_m;
         a[i][j] = jran;
         printf("%7lu,", a[i][j]) ;
         if (a[i][j] > max)
         {
            max = a[i][j], i1 = i + 1, j1 = j + 1;
         }
      }
      printf("\n");
   }
   printf("max=%lu i=%d j=%d\n", max, i1, j1);
 
   system("pause");
 
   return 0;
}

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы