Cần giúp đỡ cách tính tổng các phần tử lẻ trên đường chéo phụ

#include<bits/stdc++.h>
#define nmax 105
using namespace std;
int main()
{
	int n,a[nmax][nmax],s[105];
	cin>>n;
	for(int i=1;i<=n;i++)
	   for(int j=1;j<=n;j++)
	   cin>>a[i][j];
	   
	for(int i=1;i<=n;i++)
	   {
	   	for(int j=1;j<=n;j++)
	   	if(i=j-n-1)
	   	s[i]=s[i]+a[i][j];
	   }
	   cout<<s;
}

em ko bt làm thế nào mọi người bày cách làm cho em vs ạ

Viết chương trình nhập vào một ma trận vuông cấp n. Tính tổng các phần tử lẻ trên đường chéo phụ, biết phần tử thuộc đường chéo phụ có tổng chỉ số hàng và chỉ số cột bằng n+1 với n là cỡ ma trận

Dữ liệu:

  • Dòng đầu tiên ghi số nguyên không âm n ( n <= 100),
  • n dòng sau, mỗi dòng ghi n số nguyên biểu diễn hàng thứ i của ma trận.

Kết quả: In ra tổng các phần tử lẻ trên đường chéo phụ.

Ví dụ

  • input
    2
    1 4
    1 3

  • output
    1

Việc xét phần tử lẻ chắc bạn bt rồi, bạn có thể thấy đường chéo phụ sẽ là a[1][1], a[2][2], …, a[n][n]; cứ theo chiều xiêng lên từ trái sang phải

1 Like
  1. Đề bài chỉ yêu cầu tính một tổng, nên chẳng cần khai báo mảng s[105] làm gì. Bạn không hiểu đề.
  2. Sai 2 lỗi ngay điều kiện if(i=j-n-1)
    • Toán tử so sánh là gì? = hay ==.
    • Tổng của ij bằng n + 1 (theo đề). i+j=n+1 \Rightarrow i = n + 1 - j(toán phổ thông).

Xem xét lại thì đề sai (hoặc bạn ghi đề bị sai). Không phải là n + 1 mà đúng là n - 1. i+j=n-1 \Rightarrow i = n - 1 - j

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