please help my code does not calculate the average of inputted numbers correctly .dataprompt1: .asciiz "Enter the number of real numbers: "prompt2: .asciiz "Enter a real number: "result: .asciiz "The average is: " .text.globl mainmain: # Prompt for the number of real numbers li $v0, 4 la $a0, prompt1 syscall li $v0, 5 # Read integer syscall move $t0, $v0 # Number of real numbers move $t1, $zero # Counter for input numbers # Initialize floating-point sum to 0.0 mtc1 $zero, $f0 # Move 0 into $f0 cvt.s.w $f0, $f0 # Convert 0 to float input_loop: beq $t1, $t0, calculate # If counter equals input count, go to calculate # Prompt for each real number li $v0, 4 la $a0, prompt2 syscall li $v0, 6 # Read float syscall # Add input to sum add.s $f0, $f0, $f12 # Update sum (add the new input) addi $t1, $t1, 1 # Increment counter j input_loop calculate: # Calculate the average mtc1 $t0, $f2 # Move the count into $f2 cvt.s.w $f2, $f2 # Convert the integer count to float div.s $f4, $f0, $f2 # Average = sum / count mov.s $f12, $f4 # Move the result to $f12 # Print the result messageli $v0, 4la $a0, resultsyscall # Print the averageli $v0, 2syscall # Print li $v0, 10syscall #exit
please help my code does not calculate the average of inputted numbers correctly
.data
prompt1: .asciiz "Enter the number of real numbers: "
prompt2: .asciiz "Enter a real number: "
result: .asciiz "The average is: "
.text
.globl main
main:
# Prompt for the number of real numbers
li $v0, 4
la $a0, prompt1
syscall
li $v0, 5 # Read integer
syscall
move $t0, $v0 # Number of real numbers
move $t1, $zero # Counter for input numbers
# Initialize floating-point sum to 0.0
mtc1 $zero, $f0 # Move 0 into $f0
cvt.s.w $f0, $f0 # Convert 0 to float
input_loop:
beq $t1, $t0, calculate # If counter equals input count, go to calculate
# Prompt for each real number
li $v0, 4
la $a0, prompt2
syscall
li $v0, 6 # Read float
syscall
# Add input to sum
add.s $f0, $f0, $f12 # Update sum (add the new input)
addi $t1, $t1, 1 # Increment counter
j input_loop
calculate:
# Calculate the average
mtc1 $t0, $f2 # Move the count into $f2
cvt.s.w $f2, $f2 # Convert the integer count to float
div.s $f4, $f0, $f2 # Average = sum / count
mov.s $f12, $f4 # Move the result to $f12
# Print the result message
li $v0, 4
la $a0, result
syscall
# Print the average
li $v0, 2
syscall
# Print
li $v0, 10
syscall #exit
Unlock instant AI solutions
Tap the button
to generate a solution