Hi I need help please the code is not calculating the average correctly for example, I entered 4 integers, '5', '4', '3', '8', and it resulted that the average is 2, which is incorrect this is the code: .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 syscall move $t0, $v0 move $t1, $zero # Initialize floating-point sum to 0.0 li $t2, 0 mtc1 $t2, $f0 cvt.s.w $f0, $f0 input_loop: beq $t1, $t0, calculate # Prompt for each real number li $v0, 4 la $a0, prompt2 syscall li $v0, 6 syscall add.s $f0, $f0, $f12 addi $t1, $t1, 1 j input_loop calculate: # Calculate the average mtc1 $t0, $f2 cvt.s.w $f2, $f2 div.s $f4, $f0, $f2 # Print the result li $v0, 4 la $a0, result syscall mov.s $f12, $f4 li $v0, 2 syscall # Exit program li $v0, 10 syscall
Hi I need help please the code is not calculating the average correctly
for example, I entered 4 integers, '5', '4', '3', '8',
and it resulted that the average is 2, which is incorrect
this is the code:
.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
syscall
move $t0, $v0
move $t1, $zero
# Initialize floating-point sum to 0.0
li $t2, 0
mtc1 $t2, $f0
cvt.s.w $f0, $f0
input_loop:
beq $t1, $t0, calculate
# Prompt for each real number
li $v0, 4
la $a0, prompt2
syscall
li $v0, 6
syscall
add.s $f0, $f0, $f12
addi $t1, $t1, 1
j input_loop
calculate:
# Calculate the average
mtc1 $t0, $f2
cvt.s.w $f2, $f2
div.s $f4, $f0, $f2
# Print the result
li $v0, 4
la $a0, result
syscall
mov.s $f12, $f4
li $v0, 2
syscall
# Exit program
li $v0, 10
syscall
Step by step
Solved in 2 steps