输入输出格式练习

来源:互联网 发布:数据备份下载 编辑:程序博客网 时间:2024/06/06 19:55

题目描述

输入

按格式读入一个3位的整数、一个实数、一个字符。

输出

按格式输出一个整数占8位左对齐、一个实数(位数不多于8位,保留一位小数后)占八位右对齐、一个字符,并用|隔开

样例输入

123456.789a

样例输出

123     |   456.8|a

提示

来源

代码:

#include<stdio.h>#include<string.h>char s[25];int main(){    scanf("%s",s);    int len=strlen(s);    int i;    for(i=0;i<3;i++)//打印前三位。即整数        printf("%c",s[i]);    printf("     |");//打印空格    int t=0;    int k=0;    for(i=3;i<len;i++){//找到小数点的位置        if(s[i]=='.'){           t=i;           break;        }    }    if(s[t+2]<'0'&&s[t+2]<'5') k=0;//判断百分位是否可以进位    else if(s[t+2]>='5'&&s[t+2]<'9') k=1;    int m=t+1;//小数点的后一位    int p=s[m]-'0'+k;    s[m]=p%10+'0';    k=p/10;    m=t-1;//个位    while(m>=3){//模拟加法        p=s[m]-'0'+k;;        s[m]=p%10+'0';        k=p/10;        m--;    }    int j;    for(j=0;j<8-t;j++)        printf(" ");    if(s[3]=='0') printf("1");//判断最高位是否进位    else printf(" ");    for(i=3;i<=t+1;i++)        printf("%c",s[i]);    printf("|");    printf("%c",s[len-1]);return 0;}



原创粉丝点击