输入一个5位整数,分解出它的每位数字,并将这些数字间隔3个'-'的形式打印出来。
输入只有一行,该行只有一个五位整数。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a;
while(scanf("%d",&a)!=EOF)
if(a==0)
{
break;
}
else
{
printf("%d---%d---%d---%d---%d\n",a/10000,(a%10000)/1000,(a%1000)/100,(a%100)/10,(a%10));
}
return 0;
}
什么是while((scanf("%d",&a))!=EOF)
首先先来逐层分析一下while((scanf("%d",&a))!=EOF)
用这种循环的写法,可以解决一些需要循环到文件结束(也即文件不结束就循环)的问题。
我们先来看下这个句子,while((scanf("%d",&a))!=EOF)
逐层分析:
最外层:
是我们熟悉的while循环的一部分,
while循环:while(表达式){循环体}中的while(表达式)
内层(从左到右):
1.scanf()函数语句
附:scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件(stdio.h)里,因此在使用scanf函数时要加上#include 。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。(参考:百度百科)
2."!="C语言中的运算符号,意为"不等于"。
3.EOF,是一个计算机术语,全称为"End Of File",也就是文件结束符
附:在C语言在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以[字符]的[ASCII]代码值的形式存放。我们知道,[ASCII代码值]的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。(参考:百度百科)