&为取地址运算符.从本质上来说, scanf是通过参数, 将值传递给主调函数.所以必须传指针作为参数.&取地址,将整型变量i转为int *型, 传给scanf.scanf在该指针指向区域赋值,实现对i赋值的效果.
格式字符串的一般形式为:[*][输入数据宽度][长度]类型 其中有方括号[]的项为任选项 “*”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。如:scanf("%d d d",&a,&b);当输入为:1 2 3时,把1赋予a,2被跳过,3赋予b。c作用时读取输入流中数字后的一个字符,并丢弃,...
你好!对于scanf中的 (如%*s d)表示跳过这个字段(假如存在)。相对前面括号中的,则是跳过一个单词 跳过一个整形数 那么,scanf("%d%*s%d",&a,&b);就是说:读取一个整型数,放到a里;忽略中间输入的任何串(假如存在);读取另一个整型数,放到b里。仅代表个人观点,不喜勿喷,谢谢。
输入一个整数,并将这个整数放到数组a的第i个地址上去,简言之就是输入数组a的第i个值
\n就结束输入了,scanf函数 的第一个参数是都要输入的,你这个"%d\n",就需要先输入一个整数,再输入一个"\",再输入一个"n",再回车,所以一直阻塞在这,随便搜的一个博客,看看应该就理解了 网页链接
include<stdio.h>void main(){int a;char b;printf("输入一个数字:");scanf("%d",&a);getchar();//接收回车换行b=getchar();printf("%d",a+b);}
这是什么逻辑呀!scanf()和printf()函数都有返回值且都是整型量。scanf()的返回值是scanf()函数正确接受到的对应型号数的个数。比如 int i,a,b,c;i=scanf("%d%d%d",&a,&b,&c);如果输入1_@_100,则i=2;如果输入12_100_-1,则i=3;如果输入@_w_A,则i=0.本题的一个完整的c程序...
printf("请输入需要进行的运算:");scanf("%c",&ch);switch(ch)case '+':printf("x+y=%d\n",a+b);break;case '-':printf("x-y=%d\n",a-b);break;case '*':printf("x*y=%d\n",a*b);break;case '/':if(b==0)printf("分母不能为0\n");else printf("x/y=%d\n",a...
你的scanf("%d,%d")中间是逗号,所以你输入的时候要用否好分隔你的数字。scanf是精确匹配的。
在键盘上应该这样输入:3 7Aa 这里主要看三点:1)scanf函数使用空格(换行、制表符)来决定怎样将输入划分几个字段;(这是最基本的)2)格式符%d在遇到非数字符号和+/-号时停止该数字读取;3)对于%c,即使下一个字符是空白字符,它也会读取那个字符;...