توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : گرفتن رشته و نمایش رندم آنها
سلام
یک برنامه نوشتم که به تعداد مورد نظر کاربر نام بگیره و به صورت رندوم به تعداد مورد نظر نمایش بده ولی قسمت رندم گرفتن برنامه مشکل داره و خروجی نمیده !
میشه راهنمایی کنید لطفا
#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));
char rnd_names = rand() ;
int j ;
for(j=0;j<=m;j++)
{
printf("%s\n",rnd_names);
}
return 0;
}
منظورت از " چی است؟
بعدش از کدام تابع برای رندوم گیری استفاده کردی؟
من قسمت تابع رندوم را ویرایش کردم و کار کرد
#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;
}
<p>
این واسه شما چه خروجی ای میده ؟ </p>
<p>
واسه من خروجی درست نمیده</p>
<p>
https://s4.uupload.ir/files/1_8p2v.png</p>
چرا همه نوشته ها به هم میریزه اینجا
خروجی درست می*دهد، همان طوری که گفتید
ابتدا می*گوید:
tedad kol afrad ra vared konid :
سپس:
nam afrad ra vared konid :
سپس:
tedad afrad morede niaz ra vared konid :
در آخر دو اسم را به صورت تصادفی چاپ می*کند:
yahya
abbas
توجه کنید که به جای str[i] در scanf باید از str+i استفاده کنی
#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;
}
خروجی
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.
<p>
به جای time(m)--- time(null)</p>
در خط ۲۷به جای time(m) عبارت زیر بگذار
time(NULL)
فقط یک مشکل دیگه
داره رندوم انتخاب میکنه ولی تکرار هم داره !
چیگار کنم تکراری انتخاب نکنه ؟؟؟؟
سلام می تونید اندیس های رندم تولید شده رو داخل یه آرایه نگه دارید و موقع ایجاد اندیس رندم جدید بررسی کنید که اون اندیس قبلا تولید شده یا نه و اگه شده بود، اندیس رو دوباره ایجاد کنید.
میشه رو کد توضیح بدید چطوری ؟؟؟
یه مثال ساده درست کردم...ببین به دردت میخوره..اگه جایی رو متوجه نشدی بگو توضیح بدم
یه مثال ساده درست کردم...ببین به دردت میخوره..اگه جایی رو متوجه نشدی بگو توضیح بدم نه والا متوجه نشدم !!! میتونی رو کد خودم پیاده کنی که رندوم تکراری نده ؟؟
rnd.txt - یو آپلود (https://uupload.ir/view/rnd_wr28.txt/)
قدرت گرفته توسط ویبولتین فارسی - فارسی شده توسط تیم پی سی وب