Lỗi tính tổng trong vòng lặp

Chào mọi người, mình có bài tập xử lí mảng 2 chiều: tính tổng các hàng lẻ nhưng gặp lỗi khi tính tổng ở lòng lặp bên dưới. Mọi người xem giúp mình, cảm ơn.

#include<stdio.h>
#include<conio.h>
void main()
{
	int a[100][100], i, t;
	int(*p)[100], n, m;
	int s = 0;
	p = a;
	printf("nhap so dong:");
	scanf_s("%d", &n);
	printf("\nnhap so cot:");
	scanf_s("%d", &m);
	for (i = 0; i < n; i++)
	{
		for (t = 0; t < m; t++)
		{
			printf("\na[%d][%d]=", i, t);
			scanf_s("%d", *(p + i) + t);
		}
	}
	for (i = 0; i < n; i++)
	{
		for (t = 0; t < m; t++)
		{
			printf("%4d", (*(p + i))[t]);
		}
		printf("\n");
	}

	for (i = 0; i < m; i++) **//Loi o vong lap nay**
	{
		if (i % 2 == 0)
		{
			for (t = 0; t < n; t++)
			{
				s += ((*(p + i))[t]);
			}
			printf("\ntong hang %d = %d", i+1, s);
		}

		s = 0;
	}
	_getch();
}

Cụ thể lỗi của bạn là như thế nào?

1 Like

mình muốn lưu vào biến s là kết quả tính tổng nhưng khi trả s thì lại ra kết quả rác

Mình nghĩ lỗi ở đây, mục đích của việc gán lại s = 0 của bạn là gì thế =))

1 Like

tính tổng của mỗi hàng riêng nên phải gán lại s = 0 . Nếu không gán lại thì tổng của hàng tiếp theo sẽ lấy s của hàng trên tính tiếp chứ nhỉ?

Lỗi này có thể do bạn dùng scanf_s
bạn thử chuyển scanf_s sang scanf thử xem

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