30/09/2018, 18:53

thắc mác lỗi về mảng trong C

chào mọi người, bài tập về mảng của em là nhập vào n phần tử trong mảng, nhập mảng và đểm số phần tử âm. Đây là code của em nhưng bị lỗi, mong được mọi người giúp đỡ

#include <stdio.h>
#include <conio.h>
void nhapmang(int a[], int* n);
void demsoam(int a[],int n);
void main()
{
	int a, n;
	nhapmang(a , &n);
	demsoam(a , n);
	getch();
}
void nhapmang(int a[], int* n)
{
	printf("so phan tu: ");
	do
		scanf("%d",&(*n));
	while(*n<1);
	for(int i=0; i < *n; i++)
	{
		printf("phan tu thu %d",i);
		scanf("%d",&a[i]);
	}
}
void demsoam(int a[],int n)
{
	int i, k ;
	k = 0;
	for(i = 0; i < n; i++)
	{
		if( a[i] < 0 )
			k++ ;
	}
	printf("so k la %d ", k) ;
}
17XGOD viết 21:09 ngày 30/09/2018

lỗi như thế nào vậy bạn

Lâm Khả Hân viết 20:54 ngày 30/09/2018

error C2664: ‘demsoam’ : cannot convert parameter 1 from ‘int’ to ‘int []’
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
hàm nhapmang cũng v luôn đó bạn

17XGOD viết 21:05 ngày 30/09/2018

Bạn tham khảo

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void nhapmang(int a[], int n);
void demsoam(int a[],int n);
int main()
{
	int a[100], n;
	nhapmang(a , n);
	demsoam(a , n);
	getch();
}
void nhapmang(int a[], int n)
{
	printf("so phan tu: ");
	do
		scanf("%d",&(n));
	while(n<1);
	for(int i=0; i < n; i++)
	{
		printf("phan tu thu %d",i);
		scanf("%d",&a[i]);
	}
}
void demsoam(int a[],int n)
{
	int i, k ;
	k = 0;
	for(i = 0; i < n; i++)
	{
		if( a[i] < 0 )
			k++ ;
	}
	printf("so k la %d ", k) ;
}
Lâm Khả Hân viết 21:04 ngày 30/09/2018

chương trình chạy được rồi cảm ơn bạn nhưng bạn cho mình hỏi vậy thì n có bị giới hạn trong 100 không bạn

17XGOD viết 21:08 ngày 30/09/2018

à có bạn , ở đây mình vd thôi, bạn có thể mở thêm hoặc rút bớt lại

Lâm Khả Hân viết 21:05 ngày 30/09/2018

cảm ơn nha bạn : )

Bài liên quan
0