如何阻止整个printf语句重复,但允许char值重复

  • 本文关键字:char 何阻止 printf 语句 c
  • 更新时间 :
  • 英文 :


我希望简单地制作用户输入的char变量,以根据他们输入的int变量进行重复。

例如:D10的用户输入将输出"0";DO-WHILL:DDDDDDDDD";

使用我当前的代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
char value;
int iterations, numIter;
printf("+----------------------+ nLoop application STARTEDn+----------------------+nn");

printf("D = do/while | W = while | F = for | Q = quitn");
printf("Enter loop type and the number of times to iterate (Quit=Q0): ");
scanf(" %c%d", &value, &iterations);
for (numIter = 0; numIter < iterations; numIter++)
{
if ((value == 'D') && (iterations > 3 || iterations < 20))
{
printf("DO-WHILE: %c", value);

我确实查找了这个问题的答案,但似乎没有什么能确切地说明我必须如何在这里做到这一点,我确实学会了使用(numIter=0;numIter<迭代次数;numIter++(来根据用户输入的内容增加numIter(迭代次数(,但无法理解如何将其应用于"的字母变量用户输入;值";。

如果用户输入D10,这将导致整个语句连同%c值重复10次。我可以理解这似乎是错误的,但不知道为什么或如何修复。

我认为您需要使用do while作为代码显示,

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
char value;
int iterations, numIter;
printf("+----------------------+ nLoop application STARTEDn+----------------------+nn");

printf("D = do/while | W = while | F = for | Q = quitn");
printf("Enter loop type and the number of times to iterate (Quit=Q0): ");
scanf(" %c%d", &value, &iterations);

if ((value == 'D') && (iterations > 3 || iterations < 20))
{ 
printf("DO-WHILE:"); 
numIter = 0;
do{      

numIter=numIter+1;
printf("%c", value);
}
while(numIter < iterations);




}

return 0;
}

最新更新