【发布时间】:2019-02-23 22:13:54
【问题描述】:
我的代码有什么问题,如果 b!=-1 没有返回值
#include <stdio.h>
int find_even(int k){
int a,b,i=0;
scanf("%d",&a);
while (a>=0){
if(i<k){
if (a>=0 && a%2 == 0){
b=a;
i++;
}
}
scanf("%d",&a);
}
if (i<k){
b=-1;
}
return b;
}
void main(){
int k;
printf("Enter the value of K : ");
scanf("%d",&k);
printf("Enter the sequence of non negative integers and at end enter a negative integer : ");
if (find_even(k)<0)
printf("No %dth even integer exist.",k);
else
printf("Result = %d. ",find_even(k));
}
我正在尝试获取第 k 个偶数位,但当 b 的值不等于 -1 时,我没有得到任何返回值
【问题讨论】:
-
如果对
find_even()的第一次调用没有返回-1,您将再次调用find_even()作为printf()的参数,因此它将scanf()用于另一个用户输入。我不认为那是你想要的 -
如果用户在每个提示符处输入 -1 会发生什么?