【发布时间】:2016-06-18 22:29:16
【问题描述】:
我的程序提示用户输入两个正整数来计算他们的 GCD。来自扫描仪的程序不接受任何非正整数的输入,而是再次提示用户。
我的大部分代码已经可以正常工作了。我的问题是我的程序在要求另一个正整数之前需要两个负整数输入。其他角色工作得很好。有什么技巧可以解决这个小问题吗?
源代码
#include <stdio.h>
#include <stdlib.h>
int main() {
int temp1, temp2, A, B, C;
char str[256];
while(1){
printf("Enter a positive integer: ");
while(scanf(" %d", &A)!=1 || A <= 0) {
scanf(" %s", str);
printf("Please enter a positive integer: ");
}
if(A > 0){
break;
}
}
//same loop to get B
//compute GCD of A and B
//print out answer
return 0;
}
样本输出
Enter a positive integer: -5
-6
Please enter a positive integer: -7
-8
Please enter a positive integer: k
Please enter a positive integer: s
Please enter a positive integer: d
Please enter a positive integer: 5
【问题讨论】:
标签: c string input conditional-statements