【发布时间】:2017-10-31 19:05:20
【问题描述】:
当我运行这个程序时,除了最后的while循环块之外,所有的东西都被执行了。我被要求输入“每行要打印的符号数”,然后程序结束。任何帮助将不胜感激。
#include <stdio.h>
int main(void) {
int num_lines;
printf("Enter a number of lines, greater than or equal to 7, to print : ");
scanf("%d", &num_lines);
if (num_lines < 7) {
while ( num_lines < 7 ) {
printf("Enter the number of lines to print\nMust be greater than or equal to 7 : ");
scanf("%d", &num_lines);
}
}
char symbol;
printf("Choose a symbol/character to be displayed */&/+/0/x : ");
scanf("%s", &symbol);
int num_symbols;
printf("Enter the number of symbols to print per line : ");
scanf("%d", &num_symbols);
if (num_symbols < 7 || num_symbols > 27) {
num_symbols = 19;
}
while (num_lines > 0) {
while (num_symbols > 0) {
printf("%s", symbol);
--num_symbols;
}
printf("\n");
--num_lines;
}
return;
}
【问题讨论】:
-
简单问题,is
num_lines> 0? -
是的,num_lines 输入 8,符号输入 *,num_symbols 输入 10。
-
O/T - 不需要
if (num_lines < 7) {.. 如果这是真的while ( num_lines < 7 ) {的主体将执行,否则它不会 -
scanf("%s", &symbol);-->scanf(" %c", &symbol);...printf("%s", symbol);-->printf("%c", symbol);
标签: c loops pointers while-loop scanf