01/10/2018, 16:05

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("
nhap so cot:");
	scanf_s("%d", &m);
	for (i = 0; i < n; i++)
	{
		for (t = 0; t < m; t++)
		{
			printf("
a[%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("
");
	}

	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("
tong hang %d = %d", i+1, s);
		}

		s = 0;
	}
	_getch();
}
Lương Thế Hải viết 18:19 ngày 01/10/2018

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

Nguyễn Tấn Tài viết 18:16 ngày 01/10/2018

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

Đoàn Trọng Hiếu viết 18:10 ngày 01/10/2018

s = 0;

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ế =))

Nguyễn Tấn Tài viết 18:07 ngày 01/10/2018

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ương Thế Hải viết 18:08 ngày 01/10/2018

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

Bài liên quan
0