Member 13776071 Ответов: 3

Не могли бы вы описать мне, как найти результаты этой программы?


Я пытался найти результаты этой программы, но не могу. Я ничего не понимаю, пожалуйста, помогите мне.

Что я уже пробовал:

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
int main()
{
	char v[] = {'A', 'B', 'C', 'D', 'Z'};
	int m=0, k=0, x;
	while (v[k] != 'Z')
	{
		m += v[k] - 'A';
		k++;
	}
	printf("%d\n", m);
	for (m=5, k=7, x=0; --m, k>m; k-=2) x++;
	printf("%d\n", x);

system("pause");
return 0;
}

3 Ответов

Рейтинг:
2

KarstenK

ты лучше напиши более чистый код (более понятно) и расширить вывод для лучшего понимания, как это:

m=5, x=0;//not for the loop
printf("m = %d\n", m);
for ( k=7; k>m; k-=2) //with brace for loop body
{
  x++;
  --m;// in loop operation
  printf("x = %d\n", x);
}
printf("final x = %d\n", x);
Выход находится на консоли (черное окно).


Jochen Arndt

Вероятно, это задание с заданным кодом.

Обратите внимание также, что ваш код будет иметь другой результат.

Рейтинг:
2

Jochen Arndt

Скомпилируйте и запустите его.

Чтобы узнать, что происходит на каждом шаге, вставьте операторы печати, показывающие содержимое всех переменных внутри циклов.

Или сделайте это вручную, записав его на листе бумаги или в текстовом файле:

m = 0, k = 0
v[k] = v[0] = 'A' = 64
v[k] - 'A' = 'A' - 'A' = 0
m += v[k] - 'A' -> m = 0
k++ -> k = 1
v[k] = v[1] = 'B' = 65
v[k] - 'A' = 'B' - 'A' = 65 - 64 = 1
m += v[k] - 'A' -> m = 1
...
Аналогично для второго цикла:
m = 5, k = 7, x = 0
--m -> m = 4
k > m / 7 > 4 ? Yes, move on
x++ -> x = 1
k -= 2 -> k = 5

--m -> m = 3
k > m / 5 > 3? Yes, move on
x++ -> x = 2
k -= 2 -> k = 3

...
Все, что вам нужно знать, - это порядок выполнения for циклы и то, что делает оператор запятой (см., например для петли - cppreference.com[^] и Другие операторы - cppreference.com[^] ).


CPallini

5.

Рейтинг:
0

Patrice T

Цитата:
Я пытался найти результаты этой программы, но не могу. Я ничего не понимаю, пожалуйста, помогите мне.

Нет необходимости разбираться в этой программе, чтобы найти ее выход. Самый простой способ-просто запустить его, и вы получите результаты.
Цитата:
Не могли бы вы описать мне, как найти результаты этой программы?

Эта программа специально создана, чтобы быть трудной для понимания, если просто читать код, но вы можете получить помощь от вашего компьютера, инструмент для использования является отладчик.
-----
Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.