当我在运行时设置两个输入时,Scanf()要求三个输入。 [英] Scanf() is asking for three inputs when I set two when run.
问题描述
#include< stdio.h>
#include< stdlib.h>
int main()
{
printf(Hello world!\ n);
printf(Tenno heika banzai !! \ n);
printf(%d \ n,69);
printf(输入你的名字\ n);
char name [ 30];
scanf(%s,& name);
printf(你的名字是:);
printf (%s \ n,姓名);
printf(输入你的年龄\ n);
int age;
scanf(%d,& age);
printf(你的年龄是:);
printf(%d \ n,年龄);
if(age> = 18){printf(Grown Frau / Mann \ n);}
if(age< 18){printf(年轻的boi \ n);}
printf(输入一个大号。\ n);
int nummer;
scanf(%ld,& nummer);
printf( %ld \ n,nummer);
int a;
int b;
printf(插入第一个和第二个数字: \ n);
scanf(%d \ n,& a); ///应该只是两个输入//
scanf( %d \ n,& b); ///还有另一个鬼输入///
printf(你选择%d和%d,a,b);
返回0;
}
我尝试过:
#include< stdio.h>
#include< stdlib.h>
int main()
{
printf(Hello world!\ n);
printf(Tenno heika banzai !! \ n);
printf(%d \ n,69);
printf(输入你的名字\ n);
char name [30];
scanf(%s,& name);
printf(你的名字是: );
printf(%s \ n,姓名);
printf(输入你的年龄\ n);
int age;
scanf(%d,& age);
printf(你的年龄是:);
printf(%d \ n,年龄);
if(age> = 18){printf(Grown Frau / Mann \ n);}
if(age< 18){printf(Young boi \ n);}
printf(输入一个大数字r.\\\
);
int nummer;
scanf(%ld,& nummer);
printf( %ld \ n,nummer);
int a;
int b;
printf(插入第一个和第二个数字: \ n);
scanf(%d%d \ n,& a& b);
printf(你选择%d和%轻拍);
返回0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
printf("Tenno heika banzai!!\n");
printf("%d\n",69);
printf("Enter your name\n");
char name[30];
scanf("%s",&name);
printf("Your name is:");
printf("%s\n",name);
printf("Enter your age\n");
int age;
scanf("%d",&age);
printf("Your age is: ");
printf("%d\n",age);
if(age>=18){printf("Grown Frau/Mann\n ");}
if(age<18){printf("Young boi\n");}
printf("Enter a big number.\n");
int nummer;
scanf("%ld",&nummer);
printf("%ld\n",nummer);
int a;
int b;
printf("Insert first and second number pls:\n");
scanf("%d\n",&a);///should be just two inputs//
scanf("%d\n",&b);///There was a another ghost input///
printf("You have chosen %d and %d",a,b);
return 0;
}
What I have tried:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
printf("Tenno heika banzai!!\n");
printf("%d\n",69);
printf("Enter your name\n");
char name[30];
scanf("%s",&name);
printf("Your name is:");
printf("%s\n",name);
printf("Enter your age\n");
int age;
scanf("%d",&age);
printf("Your age is: ");
printf("%d\n",age);
if(age>=18){printf("Grown Frau/Mann\n ");}
if(age<18){printf("Young boi\n");}
printf("Enter a big number.\n");
int nummer;
scanf("%ld",&nummer);
printf("%ld\n",nummer);
int a;
int b;
printf("Insert first and second number pls:\n");
scanf("%d%d\n",&a&b);
printf("You have chosen %d and %d",a,b);
return 0;
}
推荐答案
简单:你告诉它了!
scanf
调用中的\ n告诉scanf忽略换行符之前的所有内容 - 但您已经使用了用户输入的换行符来终止第一行整数,所以它有点混乱。
你也不应该使用%ld来读取一个整数 - 没有空间来容纳一个长整数,并且在某些系统可能会给你带来不可预测的结果。
另外,作为一个初学者,不要试图将它们拼凑在一条线上:
Simple: you told it to!
The "\n" in yourscanf
call tells scanf to ignore everything up to a newline - but you've already used the newline the user entered to terminate the first integer, so it gets a little confused.
You also shouldn't use "%ld" to read into an integer - there isn't th space to fit a long integer in there, and on some systems that may give you unpredictable results.
Plus, as a beginner, don;t try to cram it all together on one line:
if(age>=18){printf("Grown Frau/Mann\n ");}
正确缩进:
Indent it properly:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
printf("Tenno heika banzai!!\n");
printf("%d\n",69);
printf("Enter your name\n");
char name[30];
scanf("%s",&name);
printf("Your name is:");
printf("%s\n",name);
printf("Enter your age\n");
int age;
scanf("%d",&age);
printf("Your age is: ");
printf("%d\n",age);
if(age>=18)
{
printf("Grown Frau/Mann\n ");
}
if(age<18)
{
printf("Young boi\n");
}
printf("Enter a big number.\n");
int nummer;
scanf("%d",&nummer);
printf("%d\n",nummer);
int a;
int b;
printf("Insert first and second number pls:\n");
scanf("%d",&a);
scanf("%d",&b);
printf("You have chosen %d and %d",a,b);
return 0;
}
这篇关于当我在运行时设置两个输入时,Scanf()要求三个输入。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!