c语言 各符号用法 %*c XTU oj作业 字母倒三角及解析

scanf函数中的格式控制符:%*c

其中%c是读一个字符,而中间的*号是跳过一个字符。意思就是读取一个字符但并不赋值给变量。

下面是详细的格式说明,请参考:

%a-----------------读入一个浮点值(仅C99有效)
%A-----------------同上
%c-----------------读入一个字符
%d-----------------读入十进制整数
%i-----------------读入十进制,八进制,十六进制整数
%o-----------------读入八进制整数
%x-----------------读入十六进制整数
%X-----------------同上
%c-----------------读入一个字符
%s-----------------读入一个字符串
%f-----------------读入一个浮点数
%F-----------------同上
%e-----------------同上
%E-----------------同上
%g-----------------同上
%G-----------------同上
%p-----------------读入一个指针
%u-----------------读入一个无符号十进制整数
%n-----------------至此已读入值的等价字符数
%[]----------------扫描字符集合
%%-----------------读%符号

附加格式说明字符表修饰符

L/l:长度修饰符----输入"长"数据
h:长度修饰符------输入"短"数据
W:整型常数--------指定输入数据所占宽度
*: 星号-----------空读一个数据

ps:回车属于字符!!!!!

//字母倒三角

#include <stdio.h>

int  main( int  argc,  char  *argv[])
{ char  c ,i,j;
    int count=1;
  scanf ( "%c%*c" ,&c);   //%*c吃掉回车,否则无法输出字母三角
  while (c!= '#' )
  { printf ( "case %d:\n" ,c);
     count++;
   for (i=c;i>= 'A' ;i--)
   { printf ( "%*s" ,c-i, "" );   //意思是输出c-i个空格      ps:printf("%*s", 10, s); /*意思是输出字符串s,但至少占10个位置,不足的在字符串s左边补空格,这里等同于printf("%10s", s);*/(*s用法)
    for (j= 'A' ;j<=i;j++)                    
      printf ( "%c" ,j);
    for (j-=2;j>= 'A' ;j--)  //for运行机制   第三个表达式从第一次执行循环开始就在每次循环结束后执行一次
     printf("%c",j);
    printf ( "\n" );     
   }
   scanf ( "%c%*c" ,&c);
  }
  return  0;
}

猜你喜欢

转载自www.cnblogs.com/Torebtr/p/11546906.html