30/09/2018, 23:06

Các bạn cho tôi hỏi lỗi sai ở đâu mà ko đổi chỗ khi hiển thị

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

void xuat(int a[])
{
	int i;
	printf("
Mang da nhap la:");
    for(i=0;i<18;i++)
        printf("	 %d",a[i]);
}
void KT(int a[],int x)
{
	int i;
	printf("
Cac phan tu trong mang chia het cho 5 va lon hon x:");
    for(i=0;i<18;i++)
    {
        if(a[i]%5==0&&a[i]>x)
            printf("	 %d",a[i]);
    }
}
float TB(int a[])
{
	int i;
	int T=0;
	int D=0;
	for(i=0;i<18;i++)
    {
        if(a[i]%3==0&&a[i]<0)
		D++;
        T+=a[i];
    }
    return (float)T/D;
}
int Max(int a[])
{
	int i;
	int max=a[0];
    for(i=0;i<18;i++)
   	{
        if(a[i]>max)
            max=a[i];
    }
    return max;
}
int Min(int a[])
{
	int i;
	int min=a[0];
    for(i=0;i<18;i++)
   	{
        if(a[i]<min)
            min=a[i];
    }
    return min;
}
void DC(int a,int b)
{
	int TG;
	TG=a;
	a=b;
	b=TG;
}

int main()
{
    int i,j, dem=0;
    float x;
    int a[18]={12,19,21,-24,30,-9,12,7,-16,-25,31,5,28,-14,-9,32,14,-25};
    xuat(a);
    printf("
Nhap so thuc x:");
    scanf("%f",&x);
    printf("
Trung binh cong:%f",TB(a));
    printf("
Gia tri lon nhat va nho nhat trong mang la:	 %d,	%d",Max(a),Min(a));
    DC(Max(a),Min(a));
    printf("
Mang sau khi doi cho la:");
    xuat(a);
	return 0;
}
Trịnh Minh Cường viết 01:14 ngày 01/10/2018

void DC(int a,int b)
{
int TG;
TG=a;
a=b;
b=TG;
}

cái này là tham trị cho nên giá trị của 2 biến a và b khi bác đưa vào hàm đó sẽ không bị thay đổi khi ra bên ngoài.
Solution: đổi thành tham biến hoặc con trỏ cho 2 giá trị a và b khi truyền vào hàm.
ví dụ: void DC(int &a, int &b)

Tao Không Ngu. viết 01:14 ngày 01/10/2018

This post was flagged by the community and is temporarily hidden.

Bài liên quan
0