Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: e dùng lệnh srand((unsigned)time(NULL)) để sinh số ngẫu nhiên theo thời gian. sao qua mỗi lần lặp luôn chỉ ra 1 số duy nhất ạ

  1. #1
    Ngày gia nhập
    04 2017
    Bài viết
    2

    Question e dùng lệnh srand((unsigned)time(NULL)) để sinh số ngẫu nhiên theo thời gian. sao qua mỗi lần lặp luôn chỉ ra 1 số duy nhất ạ

    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <time.h>
    int main()
    {
    int i,j,k,a[20],n=0;
    printf("a[20]= \n");
    for(i=0;i<20;i++)
    {
    srand((unsigned)time(NULL));
    j=rand();
    printf("%d\t",j);
    }
    printf("\nNhap so muon kiem tra: ");
    scanf("%d",&k);
    for(i=0;i<20;i++)
    {
    if(a[i]=k) n++;
    }
    if(n==0) printf("\nSo %d khong co trong mang ngau nhien!",k);
    else printf("\nSo %d co trong mang ngau nhien va xuat hien %d lan!",k,n);
    }

  2. #2
    Ngày gia nhập
    01 2013
    Bài viết
    1,417

    Câu đấy chỉ nên chạy đúng 1 lần thôi ở ngoài for ấy.

    Lí do là vì lấy ở những mốc thời gian quá gần thì khởi tạo sẽ y chang nhau.

  3. #3
    Ngày gia nhập
    04 2017
    Bài viết
    2

    thế làm sao để tạo ra 1 mảng gồm 20 phần tử ngẫu nhiên ạ

  4. #4
    Ngày gia nhập
    03 2017
    Bài viết
    7

    mh code tối đa 100 phần tử sinh ngẫu nhiên bạn tham khảo nhe!Nếu chỉ muốn sinh 20 phần tử thôi thì bạn thay trong vòng for là i<=20 và bỏ chỗ nhập số phần tử trong mảng đi là được
    Code:
    #include<stdio.h>
    #include "stdlib.h"
    #include "time.h"
    #include"math.h"
    main()
    {
    	int a[100];
    	int n,i,k,j,kt=0;
    	char c;
    	do{
    	
    	printf("nhap so phan tu cua mang(nho hon hoac bang 100):");
    	scanf("%d",&n);
    }
    	while(n<=0 || n>100);
    	srand(time(NULL));
    	for(i=0;i<n;i++){
            a[i]=rand()%100;
    }
    	printf("mang gom %d phan tu sinh ngau nhien la:\n",n);
    	for(i=0;i<n;i++){
    	printf("%d ",a[i]);
    }
    printf("\nNhap so muon kiem tra: ");
    scanf("%d",&k);
    for(i=0;i<n;i++)
    {
    if(a[i]==k) kt++;
    }
    if(kt==0) printf("\nSo %d khong co trong mang ngau nhien!",k);
    else printf("\nSo %d co trong mang ngau nhien va xuat hien %d lan!",k,kt);
    	printf("\ntiep tuc khong ban(y/n)?");
    	fflush(stdin);
    	c=getchar();
    	putchar('\n');
    	system("cls");
    	if(c==121) return main();
    
    	
    }

Tags của đề tài này

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn