为什么这个程序不接受任何输入?
显然,ir正在跳过所有scanf
行。
#include<stdio.h>
struct student{
int rollno;
char name[10];
float marks;
};
struct student s;
void main()
{
scanf("\n enter roll no \t %d",&s.rollno);
printf("enter name");
scanf("\n name is \t %s",s.name);
printf("enter marks");
scanf("\n marks are \t %f",&s.marks);
printf("\n s actually are %d \t %s \t %d",s.rollno, s.name , s.marks);
getch();
}
答案 0 :(得分:1)
您误解了scanf
和printf
的功能。尽管两个调用看起来相似,但两个函数之间存在显着差异。
printf写出输出
scanf读取输入
为了提示用户输入他的名字,请先使用printf
功能。
然后相应地使用scanf
来读取此输入。
为了读取浮点数,您只需使用;
scanf("%f" , &marks)
我建议您通过scanf and printf basics阅读,以帮助您入门。
答案 1 :(得分:0)
你以错误的方式使用scanf。 要获得您想要的结果,请尝试:
int main(){
printf("Enter name: \t");
scanf("%s", s.name);
printf("The name is ", s.name)
}
答案 2 :(得分:0)
scanf
通常用于使用其参数中指定的格式从标准输入读取用户输入。您没有在method参数中指定实际的消息提示;您指定您期望从stdin输入的格式。对于消息提示,printf
是更好的选择。请参阅main
函数中的以下修订版。
void main()
{
printf("\nenter roll no \t");
scanf("%d",&s.rollno);
printf("\nenter name");
scanf("%s",s.name);
printf("enter marks");
scanf("%f",&s.marks);
printf("\n s actually are %d \t %s \t %f",s.rollno, s.name , s.marks);
}
答案 3 :(得分:0)
您使用printf
和scanf
的方式是错误的
printf 提示用户输入
scanf 以阅读用户输入
然后使用 printf
以所需格式打印结果printf("enter roll number ");
scanf("%d",&s.rollno);
printf("enter name ");
scanf("%s",s.name);
printf("enter mark ");
scanf("%f",&s.marks);
printf("\n roll number is: %d\n",s.rollno);
printf(" name is: %s\n",s.name);
printf(" mark is: %.2f\n", s.marks);