展览A
所以这段代码有printf函数,整数输入存储在后面。这是干净的代码吗?
#include <stdio.h>
#include <cs50.h>
int main(void)
{
int input;
do
{
printf("Enter a positive number: \n");
input = get_int();
}
while (input <= 0);
}
图表B
我更喜欢这个,因为线路较少,但两者之间的最终结果是否相同?
#include <stdio.h>
#include <cs50.h>
int main(void)
{
int input;
do
{
input = get_int("Please enter a positive integer: \n");
}
while (input <= 0);
}
答案 0 :(得分:1)
get_int()
将格式字符串作为其第一个参数和必须与格式一致的可选参数。第一个代码具有未定义的行为,因为您没有将正确的参数传递给get_int()
。
建议向用户提供更多信息。从main()
返回0也是更好的风格。
#include <stdio.h>
#include <cs50.h>
int main(void) {
int input;
while ((input = get_int("Please enter a positive integer: ")) <= 0) {
printf("The number entered %d is not strictly positive\n", input);
}
return 0;
}