2016-11-15 10 views
-9

Код показан ниже:Почему эти выходы моего вложенного цикла?

a = [1, 8, -1, -9]; 
b = [-5, 8, 1, -6, 7, 9]; 
for i=1:numel(a) 
    c(i) = 0; 
    for k = i : numel(a) 
     c(i) = c(i) + a(k) + b(k); 
    end 
end 

fprintf('%7.2f\n', c) 

Эти соответствующие выходы, пожалуйста, объясняет, почему:

-3.00  (2 blank spaces in front) 
    1.00  (3 blank spaces in front) 
-15.00  (1 blank space in front) 
-15.00  (1 blank space in front) 
+0

Это ваша домашняя работа, чтобы объяснить выход? Какой результат вы ожидаете от кода? – JimHawkins

+5

Введите 'doc fprintf' в командной строке MATLAB. Или посмотрите [здесь] (https://www.tutorialspoint.com/c_standard_library/c_function_fprintf.htm) для учебника по спецификациям формата fprintf. –

+0

Это моя домашняя работа, чтобы получить эти результаты, я просто не знаю, как это сделать. Я получаю разные цифры. @JimHawkins –

ответ

1

"7" в строке формата '% 7.2f \ П' определяет минимальную ширину из ... 7. Поведение по умолчанию оправдано (и не изменяется в строке формата), поэтому минимальная ширина 7 символов достигается путем заполнения пробелами слева. Такие строки формата являются общими для достижения согласованных записей в столбце чисел при использовании шрифта с фиксированной шириной.

Является ли это стандартным стандартом пользовательского интерфейса, который вертикально уложенные числа должны выравниваться в десятичной точке (также в виртуальной десятичной точке: выравнивание, где точка была бы даже если не отображать точку). Человеку легче просматривать список и понимать относительные величины записей.

 Смежные вопросы

  • Нет связанных вопросов^_^