PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : گرفتن رشته و نمایش رندم آنها



monst3r
2021/09/27, 17:25
سلام
یک برنامه نوشتم که به تعداد مورد نظر کاربر نام بگیره و به صورت رندوم به تعداد مورد نظر نمایش بده ولی قسمت رندم گرفتن برنامه مشکل داره و خروجی نمیده !
میشه راهنمایی کنید لطفا



#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
int n,m,i;
char str[20][20]; // Can store 20 strings, each of length 20

printf(&quot;\ntedad kol afrad ra vared konid : \n&quot;) ;
scanf(&quot;%d&quot;,&n); //how many string

printf(&quot;\nnam afrad ra vared konid : \n&quot;);
//input each string
for(i=0;i<n;i++)
{
scanf(&quot;%s&quot;,str[i]);
}
printf(&quot;\ntedad afrad morede niaz ra vared konid : \n&quot;) ;
scanf(&quot;%d&quot;,&m) ;

srand(time(m));
char rnd_names = rand() ;
int j ;
for(j=0;j<=m;j++)
{
printf(&quot;%s\n&quot;,rnd_names);
}

return 0;
}

mus\'ab
2021/09/27, 17:47
منظورت از &quot چی است؟

بعدش از کدام تابع برای رندوم گیری استفاده کردی؟

mus\'ab
2021/09/27, 19:31
من قسمت تابع رندوم را ویرایش کردم و کار کرد



#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
int n,m,i;
char str[20][20]; // Can store ۲۰ strings, each of length ۲۰

printf("\ntedad kol afrad ra vared konid : \n");
scanf("%d",&n); //how many string

printf("\nnam afrad ra vared konid : \n");
//input each string
for(i=0;i<n;i++)
{
scanf("%s",str+i);
}
printf("\ntedad afrad morede niaz ra vared konid : \n");
scanf("%d",&m) ;

srand ( time(m) );

for (i=1; i<=m ; i++)
{
int rnd = rand()%n;
printf("%s\n", str[rnd]);
}


return 0;
}

monst3r
2021/09/27, 20:59
<p>
این واسه شما چه خروجی ای میده ؟&nbsp;</p>
<p>
واسه من خروجی درست نمیده</p>
<p>
https://s4.uupload.ir/files/1_8p2v.png</p>

monst3r
2021/09/27, 21:09
چرا همه نوشته ها به هم میریزه اینجا

mus\'ab
2021/09/28, 05:07
خروجی درست می*دهد، همان طوری که گفتید

ابتدا می*گوید:

tedad kol afrad ra vared konid :
سپس:

nam afrad ra vared konid :
سپس:

tedad afrad morede niaz ra vared konid :


در آخر دو اسم را به صورت تصادفی چاپ می*کند:

yahya
abbas

mus\'ab
2021/09/28, 08:36
توجه کنید که به جای str[i] در scanf باید از str+i استفاده کنی

monst3r
2021/10/01, 16:41
#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main()
{
int n,m,i;
char str[20][20]; // Can store 20 strings, each of length 20


printf("\ntedad kol afrad ra vared konid : \n");
scanf("%d",&n); //how many string


printf("\nnam afrad ra vared konid : \n");
//input each string
for(i=0;i<n;i++)
{
scanf("%s",str+i);
}
printf("\ntedad afrad morede niaz ra vared konid : \n");
scanf("%d",&m) ;


srand ( time(m) );


for (i=1; i<=m ; i++)
{
int rnd = rand()%m;
printf("%s\n", str[rnd]);
}




return 0;
}

monst3r
2021/10/01, 16:42
خروجی
tedad kol afrad ra vared konid :
5


nam afrad ra vared konid :
1
11
111
1111
22


tedad afrad morede niaz ra vared konid :
3


Process returned -1073741819 (0xC0000005) execution time : 16.097 s
Press any key to continue.

mus\'ab
2021/10/05, 10:16
<p>
به جای time(m)--- time(null)</p>

mus\'ab
2021/10/05, 10:22
در خط ۲۷به جای time(m) عبارت زیر بگذار

time(NULL)

monst3r
2021/10/05, 19:21
merccc dorost shod

monst3r
2021/10/05, 19:25
فقط یک مشکل دیگه
داره رندوم انتخاب میکنه ولی تکرار هم داره !
چیگار کنم تکراری انتخاب نکنه ؟؟؟؟

AmRo
2021/10/06, 09:05
سلام می تونید اندیس های رندم تولید شده رو داخل یه آرایه نگه دارید و موقع ایجاد اندیس رندم جدید بررسی کنید که اون اندیس قبلا تولید شده یا نه و اگه شده بود، اندیس رو دوباره ایجاد کنید.

monst3r
2021/10/06, 20:23
میشه رو کد توضیح بدید چطوری ؟؟؟

AmRo
2021/10/07, 10:50
یه مثال ساده درست کردم...ببین به دردت میخوره..اگه جایی رو متوجه نشدی بگو توضیح بدم

monst3r
2021/10/10, 17:46
یه مثال ساده درست کردم...ببین به دردت میخوره..اگه جایی رو متوجه نشدی بگو توضیح بدم نه والا متوجه نشدم !!! میتونی رو کد خودم پیاده کنی که رندوم تکراری نده ؟؟

monst3r
2021/10/10, 17:48
rnd.txt - یو آپلود (https://uupload.ir/view/rnd_wr28.txt/)

AmRo
2021/10/12, 08:48
اضافه کردم