Code viết mảng in ra số âm bị lặp kết quả 2 lần

anh , chị có thể cho em hỏi em sai ở chỗ nào không ạ, nó bị lặp lại hai lần kết quả ạ.

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void nhapmang( int *a, int n)
{
	int i;
	for(i=0;i<n;i++)
	{
	printf(" a[%d]:",i+1);
	scanf("%d",a+i);
	}
}
void xuatmang(int *a, int n)
{
	int i;
	for(i=0;i<n;i++)
	printf("\t %d",*(a+i));
	
}
int soam(int *a, int n)
{
	int i,dem=0;
	for(i=0;i<n;i++)
		if(*(a+i)<0)
		printf("\t %d",*(a+i));
		dem++;
	return 1;
	return -1;
}
main()
{
	int *a,n;
	printf("nhap mang:",n);
	scanf("%d",&n);
	a=(int*)malloc(n*sizeof(int));
	nhapmang(a,n);
	printf("\n mang vua nhap la:");
	xuatmang(a,n);
	if(soam(a,n)==-1)
	printf("\n mang khong co so am");
	else
	printf("\n cac so am la:");
	soam(a,n);	
	exit(0);
}

Bạn gọi hàm soam(a,n) 2 lần thì nó in ra 2 lần là đúng rồi. Bạn tách chức năng xuất mảng thành một hàm mới là được.

5 Likes

em sửa được rồi ạ, em cám ơn ạ!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?