c语言入门:[7]输入数据scanf及顺序结构
用c语言编写一个类似下面的简单的加法程序我们应该已经会了。
main()
{
int a=5;
int b=6;
int c;
c=a+b;
printf("%d+%d=%d
",a,b,c);
}
如果想从键盘输入2个任意的整数求和,也就是说变量a和b里存储的值是从键盘输入的,而不是我们直接赋值的,那我们就需要学习sanf函数的用法,它的使用方法跟printf类似,同样被包含在stdio.h头文件中。
像变量a中输入一个整数的写法是 scanf("%d",&a),注意变量a前面的&为取地址运算符,表示找到变量a的内存地址,很多初学者忘记加这个符号写成scanf("%d",a),而你这样写编辑器是不会提示错误的但运行时你从键盘输入的数却并没有存放到a变量里。
错误程序举例:
main()
{
int a;
printf("请从键盘输入一个整数:");
scanf("%d",a);//这里没有加地址运算符
printf("a变量里的值是%d
",a);
}
运行结果截图:
scanf输入的结束是以回车作为结束的,当你输入数据后,按回车,这样表示一次输入结束。
例如
scanf("%d",&a);
scanf("%d",&b);
这样你运行程序的时候就应该输入第一个整数然后按回车,输入第二个整数然后按回车,也就是有几个scanf你就应输入几次并按次车,这时你从键盘上输入的两个整数就已经被存放到a和b变量里了。
你还记得吗printf的双引号里的内容是要输出出来的,那这里你一定要记住scanf双引号里的内容是表示要从键盘输入的内容,请看下面举例
main()
{
int a;
scanf("请从键盘输入一个整数%d",&a); //这样写,当你运行程序的时候"请从键盘输入一个整数"这几个字并不会输出到屏幕上,因为你是放在了scanf里,所以要想给变量a从键盘上赋值10,你就应从键盘上输入"请从键盘输入一个整数10"而不是直接输入10
printf("a=%d
",a);
}
那么正确的写法应该这样写:
main()
{
int a;
printf("请从键盘输入一个整数:");
scanf("%d",&a);
printf("a=%d
",a);
}
对于下面的代码如果我想最后a的值是5,b的值是6应怎样从键盘输入?
main()
{
int a;
int b;
printf("请从键盘输入两个整数用,号隔开:");
scanf("%d,%d",&a,&b);
printf("a=%d,b=%d
",a,b);
}
答案应是输入5,6然后回车,你答对了吗?
好目前为止我们写的小程序都是从上到下一行一行执行,执行完后程序就结束了,像这种流水账似的程序就称为顺序结构。
下节我们介绍c语言的选择结构,也就是能让电脑自动地判断一些事情,从而有选择地执行一些代码而不是从上到下把所有代码都执行一遍。