-
17-12-2014, 10:22 AM #1Junior Member
- 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);
}View more random threads:
- sua lỗi giùm gấp nha.
- Viết hàm replace trong C++ giống VB6?
- Ko hiểu lắm về hàm ~.~
- lỗi sai chèn phần từ vào cuối.... trong dslk
- Hãy liệt kê tất cả các số đối xứng có N chữ số và tổng các chữ số đúng bằng S cho trước.
- gia phả
- mình làm bài danh sách liên kết đơn này bị lỗi hoài, mong các pro chỉ giúp.
- Nhập n nguyên dương. Tính tổng các ước số nguyên tố của n.
- Sắp xếp chuỗi theo tổng phần tử trong chuỗi
- Cho mình hỏi về bắt bàn phím chút
-
17-12-2014, 11:02 AM #2Junior Member
- 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++;
}
}
}
}
-
17-12-2014, 11:13 AM #3Junior Member
- 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); }
Không chỉ dừng lại ở việc sử dụng nguyên liệu cao cấp, mỗi công trình còn được "chăm sóc" bằng 4 dịch vụ xuất sắc của Tre Nghệ. Từ việc tư vấn, thiết kế đến thi công và hoàn thiện, mọi quy trình đều...
Chất Lượng và Sáng Tạo: Kiến Trúc...