Tính tổng các giá trị có trong mảng mà dùng prototypes

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

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void mang(int array[],*sum); 

int main(int argc, char *argv[]) {
	int sum=0;
	int array[5];
mang(array[5],&sum);
	printf("sum=%d", sum);
	return 0;
}

void mang(int array[],*sum){
	int i=0;
	for(i=0;i<5;i++){
		printf("\nnhap a[%d]=", i);
		scanf("%d", &array[i]);
		*sum=*sum+array[i];
		}
		
}

Nếu bạn viết như trên kia thì tức là truyền giá trị array[5] vào hàm rồi. Chỗ này nếu bạn muốn truyền cái mảng đó vào thì phải viết là

mang(array, &sum);

Còn phần prototype

phần này thì khi chạy mình bị warning, bạn nên ghi chữ int vô trước *sum cho rõ ràng, dễ đọc hơn, ở dưới cũng vậy

5 Likes

Câu này hiểu đúng là bị thiếu int, đúng ra là int *sum, mặc dù C ngầm hiểu là int nhưng vẫn không ổn một chút nào.

2 Likes
void mang(float *array,int kichthuoc,float *sum, float *avarage); 
int main(int argc, char *argv[]) {
	float avarage=0;
	float sum=0;
	float array[5];
    mang(array,5,&sum,&avarage);
	printf("sum=%f\n", sum);
	printf("avarage=%f.1", avarage);
	return 0;
}
void mang(float *array, int kichthuoc, float*sum,float *avarage){
	int i=0;
	for(i=0;i<kichthuoc;i++){
		printf("\nnhap a[%d]=", i);
		scanf("%d", &array[i]);
		*sum=*sum+array[i];
		}
		*avarage=*sum/kichthuoc;
	}
scanf("%d", &array[i]);

Chỗ này là %f nha bạn, bạn đang nhập giá trị cho float mà

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