30/09/2018, 16:38
Làm sao để in ra số vị trí, khi 2 giá trị giống nhau
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
float a[100], max, min;
int i, n, vtmax, vtmin;
printf("Nhap so luong phan tu: ");
scanf("%d", &n);
for(i=0; i<n; i++)
{
printf("Nhap phan tu a[%d]: ", i);
scanf("%f", &a[i]);
}
max=min=a[0];
for(i=0; i<n; i++)
{
if(max<a[i])
{
max=a[i];
vtmax=i+1;
}
if(min>a[i])
{
min=a[i];
vtmin=i+1;
}
}
printf("Day so vua nhap la:
");
for(i=0; i<n; i++)
printf("%8.0f", a[i]);
printf("
Gia tri max = %0.0f, vi tri phan tu max = %d
", max, vtmax);
printf("Gia tri min = %0.0f, vi tri phan tu min = %d", min, vtmin);
getch();
}
Đấy là đoạn chương trình mình viết nhập một dãy n tìm phần tử max và min rồi in ra vị trí. Vấn đề ở đây là nếu nhập 2 lần giá trị max hoặc min giống nhau thì làm thế nào để n hiện ra số vị trí của 2 vị trí đó. Ai có hướng nào chỉ dẫn giúp mình với.
p/s:
Đây là code mình viết theo dạng hàm. Ở đoạn tìm vị trí của mình viết sai rồi, mình chưa tìm gia hướng giải quyết. Ai gợi ý giúp mình với.
#include <stdio.h>
#include <conio.h>
void nhap(float a[100], int n)
{
int i;
for(i=1; i<=n; i++)
{
printf("Nhap phan tu a[%d]: ", i);
scanf("%f", &a[i]);
}
}
void in(float a[100], int n)
{
int i;
printf("
Day so vua nhap la:
");
for(i=1; i<=n; i++)
printf("%8.0f", a[i]);
}
float timmax(float a[100], int n)
{
float max;
int i;
max=a[1];
for(i=1; i<=n; i++)
if(max<a[i])max=a[i];
return max;
}
float timmin(float a[100], int n)
{
float min;
int i;
min=a[1];
for(i=1; i<=n; i++)
if(min>a[i])min=a[i];
return min;
}
void vtmax(float a[100], int n, float max)
{
int i;
printf("
Vi tri max:
");
for(i=1; i<=n; i++)
{
if(max==a[i])
printf("%6.0f", i);
}
}
void vtmin(float a[100], int n, float min)
{
int i;
printf("
Vi tri min:
");
for(i=1; i<=n; i++)
{
if(min==a[i])
printf("%6.0f", i);
}
}
int main()
{
float a[100];
int n;
printf("Nhap so luong phan tu: ");
scanf("%d", &n);
nhap(a,n);
in(a,n);
printf("
Gia tri max = %0.0f
Gia tri min = %0.0f", timmax(a,n), timmin(a,n));
vtmax(a,n,timmax(a,n));
vtmin(a,n,timmin(a,n));
getch();
}
Bài liên quan
for thêm cho nó một vòng. Nếu bằng max thì in ra chỉ số thôi
Tks bạn mình làm được rồi.
Đây là code mình viết theo dạng hàm. Ở đoạn tìm vị trí của mình viết sai rồi, mình chưa tìm gia hướng giải quyết. Ai gợi ý giúp mình với.
up, ai giúp mình với