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();
}
Gió viết 18:48 ngày 30/09/2018

for thêm cho nó một vòng. Nếu bằng max thì in ra chỉ số thôi

NOName viết 18:51 ngày 30/09/2018

Tks bạn mình làm được rồi.

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

int main()
{
    float a[100], max, min;
    int i, n;
    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];
        if(min>a[i])min=a[i];
    }
    printf("Day so vua nhap la:\n\n");
    for(i=0; i<n; i++)
        printf("%8.0f", a[i]);

    printf("\n\nGia tri max = %0.0f\n vi tri phan tu max\n", max);
    for(i=0; i<n; i++)
        if(a[i]==max)
            printf("%6.0d", i+1);
    printf("\n\nGia tri min = %0.0f\n vi tri phan tu min\n", min);
    for(i=0; i<n; i++)
        if(a[i]==min)
            printf("%6.0d", i+1);
    getch();
}
NOName viết 18:40 ngày 30/09/2018

Đâ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("\nDay so vua nhap la:\n");
    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("\nVi tri max: \n");
    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("\nVi tri min: \n");
    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("\n\nGia tri max = %0.0f\nGia tri min = %0.0f", timmax(a,n), timmin(a,n));
    vtmax(a,n,timmax(a,n));
    vtmin(a,n,timmin(a,n));

    getch();
}
NOName viết 18:42 ngày 30/09/2018

up, ai giúp mình với

Bài liên quan
0