从用户处读取数字直到给出负数,返回最高、最低、范围和数字计数? #包括 #包括 内部主(空){ int a,计数,最高,最低,范围; 对于(count=0;scanf(“%d”,&a)>=0;count++){ 如果(计数=0){ 最高=a; 最低=a; } 如果(a>最高){ 最高=a; } 如果(a=0如何解决此问题?
问题是,在我按下CTRL D之前,该程序不会停止,但我希望在输入负数时停止,正如您在从用户处读取数字直到给出负数,返回最高、最低、范围和数字计数? #包括 #包括 内部主(空){ int a,计数,最高,最低,范围; 对于(count=0;scanf(“%d”,&a)>=0;count++){ 如果(计数=0){ 最高=a; 最低=a; } 如果(a>最高){ 最高=a; } 如果(a=0如何解决此问题?,c,loops,for-loop,scanf,eof,C,Loops,For Loop,Scanf,Eof,问题是,在我按下CTRL D之前,该程序不会停止,但我希望在输入负数时停止,正如您在scanf(“%D”,&a)>=0如何解决此问题?此scanf(“%d”,&a)>=0未检查a>=0此检查scanf返回,它是关于获取数据的成功和获取的输入数 #include <stdio.h> #include <math.h> int main(void) { int a,count,highest,lowest,range; for(count=0;scanf("%d",
scanf(“%D”,&a)>=0代码>如何解决此问题?此scanf(“%d”,&a)>=0
未检查a>=0
此检查scanf
返回,它是关于获取数据的成功和获取的输入数
#include <stdio.h>
#include <math.h>
int main(void) {
int a,count,highest,lowest,range;
for(count=0;scanf("%d",&a) >= 0;count++){
if(count == 0){
highest = a;
lowest = a;
}
if(a > highest){
highest = a;
}
if(a < lowest){
lowest = a ;
}
}
range = highest - lowest;
printf("%d\n %d\n %d\n %d\n",count,highest,lowest,range);
return 0;
}
int main(无效){
int a,计数,最高,最低,范围;
scanf(“%d”和“&a”);
对于(计数=0;a>=0;计数++){
如果(计数=0){
最高=a;
最低=a;
}
如果(a>最高){
最高=a;
}
如果(a<最低值){
最低=a;
}
scanf(“%d”和“&a”);
}
范围=最高-最低;
printf(“%d\n%d\n%d\n%d\n%d\n”,计数,最高,最低,范围);
返回0;
}
scanf()
C中的函数返回成功扫描的输入总数,如果在分配第一个接收参数之前发生输入失败,则返回EOF。因此,在您的示例中,scanf(“%d”,&a)
即使输入负数也会返回值1
。因此,在按下CTRL D之前,代码中的for
循环不会终止 按以下方式在for循环中写入条件
int main(void) {
int a,count,highest,lowest,range;
scanf("%d",&a);
for(count=0;a>= 0;count++){
if(count == 0){
highest = a;
lowest = a;
}
if(a > highest){
highest = a;
}
if(a < lowest){
lowest = a ;
}
scanf("%d",&a);
}
range = highest - lowest;
printf("%d\n %d\n %d\n %d\n",count,highest,lowest,range);
return 0;
}
另外,最好将所有if语句组合在一组if-else语句中,如
for ( count = 0; scanf("%d",&a) == 1 && a >= 0; count++ ){
//...
if(计数==0){
最高=a;
最低=a;
}
否则,如果(a>最高){
最高=a;
}
否则如果(a<最低值){
最低=a;
}
请查看手册中的scanf
并查看返回值的含义。负返回值与输入的负数无关。
if ( count == 0 ){
highest = a;
lowest = a;
}
else if( a > highest ){
highest = a;
}
else if(a < lowest){
lowest = a ;
}