Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    [Bài tap về mảng một chiều] Viết chương trình đếm trong dãy số nguyên có bao nhiêu giá trị nhỏ nhất. ai pro thì xem giùm mình

    #include <stdio.h>
    #include <conio.h>

    void Nhap(int a[],int &n);
    void demgtnn(int a[],int n);

    void main()
    {
    int a[100];
    int n;
    Nhap(a,n);

    demgtnn(a,n);



    getch();
    }

    void Nhap(int a[],int &n)
    {

    printf("Nhap so phan tu cua mang:");
    scanf("%d",&n);

    for (int i=0;i<n;i++)
    {
    printf("Nhap a[%d]:",i);
    scanf("%d",&a[i]);
    }

    }

    void demgtnn(int a[],int n)
    {
    int min=a[0];
    int dem=0;
    for(int i=0;i<n;i++)
    {
    if(a[i]<min)
    {
    min=a[i];
    dem++;


    }


    }
    printf("Gia tri nho nhat la:%d",min);
    printf("
    Mang co %d GTNN",dem);

    }

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Theo cách mình hiểu: xem trong mảng giá trị nào nhỏ nhất và nó xuất hiện bao nhiêu lần.
    Nếu đúng ý trên thì hàm đếm của bạn lỗi ở cách đếm; khi chạy nó sẽ xuất ra 1 dãy giá trị giảm dần bắt đầu từ a[0], và các số sẽ không bao giờ trùng (VD: nó có thể ra thế này 8 4 2 1 ; dù rằng mảng có 30 số 1)

    void demgtnn(int a[],int n)
    {
    int min=a[0]; //Giả sử a[0] nhỏ nhất để duyệt từ đầu mảng
    int dem=0; //Nếu giả sử a[0] là min, nghĩa là đã có 1 min => đếm phải là 1
    for(int i=0;i<n;i++)
    {
    if(a[i]<min) //Nếu a[i] nhỏ hơn thì min là a[i] và đếm tăng 1, vậy nếu nó bằng thì lại không tăng dù nó vẫn nhỏ nhất (a[i]=min => a[i] là min)
    {
    min=a[i]; //Tìm ra số nhỏ hơn thì đổi min cho nó, tức là cuộc tìm min sẽ bắt đầu lại từ 0, vậy đếm phải trở về ban đầu (dem=1)
    dem++;
    }

    -------------------------------------------
    Mình code lại (không có IDE nên gõ tay nhé) [IMG]images/smilies/dont_tell_anyone.gif[/IMG]
    void demgtnn(int a[],int n)
    {
    int min=a[0];
    int dem=1;
    for(int i=0;i<n;i++)
    {
    if(a[i]<min)
    {
    min=a[i];
    dem=1;
    }
    else
    {
    if(a[i]==min)
    {
    dem++;
    }
    }
    }
    }

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mã:
    #include <stdio.h>
    #include <conio.h>
    
    void Nhap(int a[]);
    void demgtnn(int a[]);
    int n,i;
    
    void main(){
     	 int a[100];
    	 Nhap(a);
    	 demgtnn(a);
    	 getch();
    }
    
    void Nhap(int a[]){
     	 printf("Nhap so phan tu cua mang:");
    	 scanf("%d",&n);
    	 for (i=0;i<n;i++)
    	 {
    	  printf("Nhap a[%d]:",i+1);
       	  scanf("%d",&a[i]);
    	 }
    }
    
    void demgtnn(int a[]){
    	 int min=a[0],temp;
    	 int dem=0;
    	 
    	for(i=0;i<n;i++){
    	if (a[i]<min)
    	   min = a[i];
    	}
    	
    	for (i=0;i<n;i++){
    		if (a[i]==min)
    		dem++; 
    	}
    	printf("Gia tri nho nhat la:%d",min);
    	printf("
    Mang co %d GTNN",dem);
    }

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •