Как вывести определенное количество звездочек в программировании на языке Си?
Я хочу, чтобы компьютер проанализировал то, что я написал, и напечатал количество звездочек, соответствующее введенному числу. Я могу управлять только фрагментом кода, который может читать то, что я ввел. Я не могу использовать массивы, но могу использовать инструкции цикла, такие как jnz, и условные инструкции, такие как cmp.
Что я уже пробовал:
Это код, который я пробовал до сих пор:
код #include "файл stdafx.ч"
#include <stdlib.h>
void printChar(char c);
void printStr(char *strAddr);
void printInt(int someInt);
//**************************************************************************//
// Определены переменные. //
//**************************************************************************//
int numItems;
int *items; // указатель на элементы
инт элемент;
int wmain(int argc, _TCHAR* argv[])
{
items = (int *)malloc(1000);
numItems = 0;
делать
{
printf("введите элемент %d (0 означает конец данных): ", numItems + 1);
scanf("%d", &anItem);
предметы[numItems] = элемент;
numItems++;
} while (anItem != 0);
//**********************************************************************//
// В ассемблер. //
//**********************************************************************//
__ассемблер
{
отделка jmp
printNewLine:
нажмите '\r' // две строки, чтобы напечатать символ.
вызовите printChar
нажмите '\n' // две строки, чтобы напечатать еще один символ.
вызовите printChar
замачивать
finish: // ничего не делать
}
//**********************************************************************//
// Из ассемблера. //
//**********************************************************************//
printf("нажмите enter, чтобы выйти\n");
char dummy[10]; //на всякий случай несколько ключей в буфере
scanf("%c", манекен); //пауза.
scanf("%c", манекен); //пауза. И еще раз. Происходит что-то странное.
}
//**********************************************************************//
// Выводит один символ. //
// Нажмите символ, который будет напечатан в стеке; a First In Last Out //
// структура данных. Помните, что в отличие от C#, символ здесь имеет размер 1 байт. //
// //
// Parameters in: вставьте один символ в стек, как указано выше. //
// Вернет: Ничего. //
// Иные вопросы: Сохраняет ли он регистры процессора eax, ebx, ecx, edx, //
// esi, edi и т. д.? Без понятия (это приводит нас в "С", так что //
// предположим, что нет. //
//**********************************************************************//
void printChar(char c)
{
printf("%c", c); //%c означает как символ
} // мы не видим инструкцию "ret", если вы не просматриваете список ".cod"
// в папке "debug".
//**********************************************************************//
// Выведите целую строку, которая должна заканчиваться нулевым байтом. //
// он принимает один параметр, который является начальным адресом строки. //
//**********************************************************************//
void printStr(char *strAddr)
{
printf("%s", strAddr);
} // мы не видим инструкцию "ret", если вы не просматриваете список ".cod"
// в папке "debug".
//**********************************************************************//
// Выводит одно целое число . //
// Push целое число, которое будет напечатано в стеке; a First In Last Out //
// структура данных. Помните, что целое число здесь имеет размер 4 байта. //
// //
// Parameters in: вставьте одно целое число в стек, как указано выше. //
// Вернет: Ничего. //
// Иные вопросы: Сохраняет ли он регистры процессора eax, ebx, ecx, edx, //
// esi, edi и т. д.? Без понятия (это приводит нас в "С", так что //
// предположим, что нет. //
//**********************************************************************//
void printInt(int someInt)
{
printf("%d", someInt);
}