当前位置:首页 » 编程语言 » c语言scanf
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言scanf

发布时间: 2022-01-15 23:54:34

1. 请问一下c语言scanf中的意思

scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数. 它和printf()有点类似. format(格式)字符串由控制字符,空白字符和非空白字符组成. 控制字符以一个%符号开始,如下: 控制字符说明%c一个单一的字符%d一个十进制整数%i一个整数%e, %f, %g一个浮点数%o一个八进制数%s一个字符串%x一个十六进制数%p一个指针%n一个等于读取字符数量的整数%u一个无符号整数%[]一个字符集%%一个精度符号scanf()读取匹配format(格式)字符串的输入. 当读取到一个控制字符, 它把值放置到下一个变量. 空白(tabs, 空格等等)会跳过. 非空白字符和输入匹配, 然后丢弃. 如果是一个在%符号和控制符间的数量, 那么只有指定数量的字符转换到变量中. 如果scanf()遇到一个字符集(用%[]控制字符表示), 那么在括号中的任意字符都会读取到变量中. scanf()的返回值是成功赋值的变量数量, 发生错误时返回EOF.

2. C语言scanf()

有逗号.
你在输入数据的时候,就必须输入逗号,
scanf("%d,%d",&a,&b);
应该输入:
1,2
scanf("%d%d",&a,&b);
这个有点问题吧.
没试过,一般情况下,是需要在中间加一个空格,
类似这样scanf("%d
%d",&a,&b);
然后两个整型以空格为分界.
输入:
1
2(注:中间有空格)
其实这个是scanf本身的一种对字符串的处理.
具体你可以熟悉一下sprintf
sscanf.
他们的原理都是一样的.

3. C语言scanf问题

/*解答者注意,这是竞赛题,它给出的输入就是实实在在的输入的内容,不要臆测,严格按照输入办事!!*/

#include <stdio.h>
int main(int argc, char* argv[]){
for(int t=0,c;scanf("%1slease input time(seconds):%d",&c,&t)==2;)
printf("Output time is(h:m:s):%d:%02d:%02d\n",t/3600,t/60%60,t%60);
return 0;
}

/*任务完成,向online judge提交吧,给分吧*/
/*当然最后一行要不要换行你自己处理吧,我这假设最后一行也换行的*/

4. C语言scanf的问题

加上头文件
void main()
{char c1,c2;
scanf("%c",&c1);
while(c1<'A'llc1<'Z')
c2=c1+32;
printf("%c%c\n",c1,c2);
}

5. c语言scanf

printf("%d",&t); 这里会输出 t 的地址,不知道是不是你的本意(我修改代码时没改此处)
如果是输出 t 的值,不用 & (&是取地址符号),对于没有赋值的变量,会输出一个默认值,所以一般不输出没赋值的变量
if判断句本身不用分号,不然会作空语句处理
if(t<50) ;
m=t*90;
等价于
if (t<50)
{
;
}
m=t*90;
执行的时候会判断t,如果小于50,执行一个空语句(相当于什么都不做),if的内容完了。接着执行m=t*90; 如果不小于50,直接跳过if。接着执行m=t*90;
所以本题中
if (t<50);
这一行多了一个 “;” 去掉
else if ( t>50&&t<100 );
一样的,去掉分号
(t>100);
这句完全没有意义,如果是你的注解,用 “//”或“/*……*/”标记

还有当你输入50 或者 100 时
会去调用 else m=t*80; 不知道你是疏忽了,还是本来就准备这么算。如果是疏忽了,请再if处,加“=”
比如 if(t<=50) ……else if (t>50&&t<=100) ……else
或者i f(t<50) ……else if (t>=50&&t<=100) ……else
随你改。下面的代码我没改这点。
修改后代码:
#include<stdio.h>
main(){
int t,m;
printf("%d",&t);
scanf("%d",&t);
if(t<50)
m=t*90;
else if (t>50&&t<100)
m=t*85;
else
m=t*80; // (t>100);
printf("%d,%d\n",t,m);
}
printf()中双引号“”内的内容除了 %d,%c之类,其他都是原样输出,所以里面不管是半角还是全角符号都无所谓,它都会原样输出,这个看个人喜好。

6. C语言scanf

它实际上输出的是s4空格
因为你的输入scanf("%c%d%c",&a,&b,&c);中最后一个c是字符,所以,c接收的是4后面输入的空格,你可以去掉输出的回车,然后在最后加一句printf("&&&");就可以看出空格输出了。

7. c语言scanf问题!

第一个主要适用于多个数据读入
scanf("%d%d%d",&a,&b,&c);
用空格符、制表符和回车符都可
但当读入字符串时
scanf("%s",str);
就需要空格,或按回车键或tab键来确定读入结束
而且多个数据读入时,“数据认为结束”时指这个数据,如前者 a=10 b=20 c=30
即按照 "10 20 30" 而不是"102030"

8. 求解 C语言scanf的问题

不知道我对你的问题理解得是否正确。
对于你的问题,在for中,要先判断(scanf("%d", &enter) == 1) && (i <= 15) ,而要判断它就意味这要执行scanf("%d", &enter),所以要先输入一个数,接着printf,然后scanf,循环再次执行,又判断一次(scanf("%d", &enter) == 1) && (i <= 15),那么前后连起来便是要输入两次了。
另外,scanf("%d", &enter) == 1 是用scanf函数的返回值与1做比较,而scanf函数的返回值是成功读入的值的个数,而不是代表所输入的数。所以,这个程序也许没有实现它的目的。
希望能帮助你。

9. c语言scanf问题

没有初始化,变量的值是随机的