AP CSA 4.13 Debugging: The Diagonal That Is Not One

Unit 4: Data Collections · Lesson 4.13 · Debugging

The Diagonal That Is Not One

Implementing 2D Array Algorithms. This is not a blank editor: it is someone else's attempt. Find what is wrong, fix it, and submit to be graded against hidden test cases.

Why debugging is its own skill

A diagonal walk needs one index that moves both ways at once, not two independent loops. Written as a nested pair it visits the whole grid, and the total that comes out is a grand total wearing a diagonal label.

What is wrong with it

  1. The diagonal sum uses a nested loop over every row and column, so it adds every element in the grid. A diagonal visits one element per row, at the position where the row and column indexes match. Rewrite it with a single loop.
  2. The maximum starts at 0, so a grid of entirely negative numbers reports a maximum that is not in the grid. Initialize it from the first element.
  3. The column count is already read correctly. The grid is guaranteed square for the diagonal.

The program reads

A size n, then n times n integers in row-major order, forming a square grid.

The program should print

Three lines: the sum of the main diagonal, the largest value anywhere in the grid, and the total of every element.

Worked examples

These show what the FIXED program should print. There are more cases you cannot see, and they use different values, so patching around just these numbers will fail.

Example 1 input
3
1 2 3 4 5 6 7 8 9
Example 1 output
15
9
45
Example 2 input
2
-5 -2 -9 -1
Example 2 output
-6
-1
-17

Your answer

Main.java

Input for the Run button

Run sends whatever is in the code box below, bugs and all, so you can see the crash or the wrong answer for yourself before you fix anything.


  

  

Stuck?

Hint 1

The main diagonal is every position where the row index equals the column index: [0][0], [1][1], [2][2]. That is n elements, so it needs n steps, so it needs one loop.

Hint 2

The starter's diagonal and total print the same number on every input. Two different quantities agreeing exactly is a strong signal that they are running the same code.

Hint 3

A maximum seeded with 0 assumes 0 belongs to the data. Seed from grid[0][0], which is guaranteed to be a real element.

Where to go next

Get in Touch

Whether you're a student, parent, or teacher — I'd love to hear from you.

Just want free AP CS resources?

Enter your email below and check the subscribe box — no message needed. Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.

Typically responds within 24 hours

Message Sent!

Thanks for reaching out. I'll get back to you within 24 hours.

🏫 Welcome, fellow educator!

I offer curriculum resources, practice materials, and study guides designed for AP CS teachers. Let me know what you're looking for — whether it's classroom materials, a guest speaker, or Teachers Pay Teachers resources.

Email

[email protected]

📚

Courses

AP CSA, CSP, & Cybersecurity

Response Time

Within 24 hours

Prefer email? Reach me directly at [email protected]