在scanf里用*修饰符,是起到过滤读入的作用。比如一个有三列数值的数据,我只想得到第2列数值,可以在循环里用scanf(“%*d%d%*d”,a[i])来读入第i行的第2个数值到a[i]。 
       * 修饰符在printf中的含义完全不同。如果写成printf(“%6d”, 123),很多同学应该就不会陌生了,这是设置域宽的意思。同理,%6s也是域宽。* 修饰符正是用来更灵活的控制域宽。使用%*s,表示这里的具体域宽值由后面的实参决定,如printf(“%*s”,6, “abc”)就是把”abc”放到在域宽为6的空间中右对齐。

#include <bits/stdc++.h>
using namespace std; int main(){
char a[10] = "abcdefgh";
char b[20];
strcpy(b, a);
b[4] = 0; //可以作为结束符???
cout << strlen(b) << endl;
cout << a << endl;
cout << b << endl; int c, d;
scanf("%d%*c%d", &c, &d); //输入1a1会跳过a直接读入a,b
cout << c << " " << d << endl; printf("%*s", 10, "aa"); //与scanf中的星号作用不同,代表输出aa并且aa占用10位 return 0;
}

5.九数组分数

1,2,3...9 这九个数字组成一个分数,其值恰好为1/3,如何组法?
下面的程序实现了该功能,请填写划线部分缺失的代码。

  1. #include <stdio.h>
  2. void test(int x[])
  3. {
  4. int a = x[0]*1000 + x[1]*100 + x[2]*10 + x[3];
  5. int b = x[4]*10000 + x[5]*1000 + x[6]*100 + x[7]*10 + x[8];
  6. if(a*3==b) printf("%d / %d\n", a, b);
  7. }
  8. void f(int x[], int k)
  9. {
  10. int i,t;
  11. if(k>=9){
  12. test(x);
  13. return;
  14. }
  15. for(i=k; i<9; i++){
  16. {t=x[k]; x[k]=x[i]; x[i]=t;}
  17. f(x,k+1);
  18. _____________________________________________ // 填空处
  19. }
  20. }
  21. int main()
  22. {
  23. int x[] = {1,2,3,4,5,6,7,8,9};
  24. f(x,0);
  25. return 0;
  26. }

思路:f(x,k+1)回溯之后,将交换后的结果还原,所以复制题目中代码即可。

答案:{t=x[k]; x[k]=x[i]; x[i]=t;}

  

12-scanf("%*s")与printf("%*s")的更多相关文章

  1. scanf读入与printf输出

    作为一个资深$cin,cout$玩家,在多次因为$cin$太慢被吊打后,开始反思有必要认真地学一下$scanf$和$printf$了$\cdot \cdot \cdot$ 格式 $scanf( &qu ...

  2. scanf函数和printf函数

    C程序实现输出和输入的 主要是printf函数 和 scanf函数,这两个函数是格式输入输出 格式声明由%和格式字符组成 如%d,%f 格式字符:  d格式符:用来输出一个有符号的十进制整数  c格式 ...

  3. 在进行多次scanf时,printf输出错误

    随便一处代码,经过改正后,输出正确的 ''' #include <stdio.h> int main(){    int T;    scanf("%d",&T ...

  4. C++-cin与scanf cout与printf效率问题

    http://blog.csdn.net/l2580258/article/details/51319387 void cin_read_nosync() { freopen("data.t ...

  5. C语言中最常用的三种输入输出函数scanf()、printf()、getchar()和putchar()

    本文给大家介绍C语言中最常用的三种输入输出函数scanf().printf().getchar()和putchar(). 一.scanf()函数格式化输入函数scanf()的功能是从键盘上输入数据,该 ...

  6. scanf printf gets() puts(),cin cout

    最近在练机试题,常用的C和C++输入输出如下: 1 scanf 和printf int a; scanf("%d",&a) ; printf("%d", ...

  7. printf()与 scanf()

    一直以来就没有认真看过控制台输入输出的格式,现今找了一些材料,分享如下: 1. 格式化规定符     Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━ ...

  8. C语言: 运算符,printf,scanf的用法

    运算符/的运算结果和运算对象的数据类型有关,两个数都是in,则商就是int,取整数部分:被除数和除数中只要有一个或两个都是浮点型数据,则商也是浮点型,不去掉小数部分如:16/5 == 3:16/5.0 ...

  9. printf与scanf的返回值、注意点

    printf()的返回值为其输出字符串常量的字符数(注意字符数与字数的区别)注意计数针对所有的打印字符,包括空格和不可见的换行字符(不包括字符串的空字符). scanf()函数返回成功读入的项目的个数 ...

  10. C语言中printf,scanf,puts,%%等输出格式

    #include<stdio.h> int main(void){    int a;    printf("请输入一个整数,程序求取他的最后一位数字:");    s ...

随机推荐

  1. win10环境变量的配置

    c盘->环境变量: 1.添加变量名和变量值 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.8.0_161 2.添加变量名和变量值 变量名:JAVA_H ...

  2. HTML <meta> http-equiv Attribute 说明

      1. 说明 Value Description content-type Specifies the character encoding for the document. Example: & ...

  3. 【Spring】Junit加载Spring容器作单元测试(整理)

    [Spring]Junit加载Spring容器作单元测试 阅读目录 >引入相关Jar包 > 配置文件加载方式 > 原始的用法 > 常见的用法 > 引入相关Jar包 一.均 ...

  4. hbase使用中需要注意一些问题

    接触hbase已经两年之久,但是真正的在实际项目中使用却只有半年的时间,使用过程中,一方面在在为hbase强大的性能兴奋之余,另一方面却也给我和我的团队造成了很多的麻烦,起初在使用我的水平也就停留在会 ...

  5. 程序4-3 umask函数实例

    //http://blog.chinaunix.net/uid-24549279-id-71355.html /* ========================================== ...

  6. Oracle记录(三) Scott用户的表结构

    在Oracle的学习之中,重点使用的是SQL语句,而所有的SQL语句都要在scott用户下完成,这个用户下一共有四张表,可以使用: SELECT * FROM tab; 查看所有的数据表的名称,如果现 ...

  7. 【转】Jenkins+Ant+Jmeter搭建持续集成的接口测试平台

    一.什么是接口测试? 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻 ...

  8. 1136 A Delayed Palindrome

    题意:略. 思路:大整数相加,回文数判断.对首次输入的数也要判断其是否是回文数,故这里用do...while,而不用while. 代码: #include <iostream> #incl ...

  9. Composer安装使用

    Composer 是 PHP5.3以上 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们. 1.下载 2.安装成功 3.配置地址 4.安装代码库 镜像 配置json

  10. Populating Next Right Pointers in Each Node II ?

    void connect(TreeLinkNode *root) { if(root==NULL) return; if(root->left&&root->right) ...