【C语言】练习1-20

  •  题目来源:《The C programming language》中的习题

  •  练习1-20:编写程序detab,将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止的地方。

  思路: 

  这里,我们首先要对制表符的概念和情况进行了解:制表符的作用是将光标移到最接近8的倍数的位置,使得后面的输出从此开始。换句话说,如果所有数据都紧跟在制表符后面输出,则这些数据只能从第9列、第17列、第25列......开始。

  • 如果已经到了第1、2、3、...8列,    则直接跳到第9列。

  • 如果已经到了第9、10、11、...16列, 则直接跳到第17列。

  • 如果已经到了第17、18、19、...24列,则直接跳到第25列。

   所以对于每一个位置的处使用制表符所需要填补的空格是不同的,计算公式如下:

nbs = (DETAB-pos%DETAB)%DETAB,其中pos为tab所处的位置。

  C语言代码实现:


#include<stdio.h>

#define DETAB 8

//将制表符替换为适当的空格,并且空格填充到下一个制表符终止位
void main(){
int c,pos,i,nbs;
pos = 1;
nbs = 0;
while((c=getchar())!=EOF){
if(c == ‘\t‘){
nbs = (DETAB-pos%DETAB)%DETAB+1;
i = 0;
for(;i<nbs;i++){
putchar(‘ ‘);
}
pos += nbs;
}else if(c == ‘\n‘){
putchar(c);
pos = 1;
nbs = 0;
}else{
pos++;
putchar(c);
}
}
}

【C语言】练习1-20,布布扣,bubuko.com

时间: 2024-10-23 20:48:08

【C语言】练习1-20的相关文章

总结swift语言常见的20个问题和回答

1.如果我是个刚入门的iOS开发者,选swift学习呢,还是选objective-c学习,还是两个都学? 这个可以根据两种情况来决定:1.我想进入公司担任iOS开发的职位    2.我只想做个独立开发者,自己开发app发布. 第一种情况的话,你必须要学objective-c,现在市面上绝大部分的app都是用oc开发的,从oc到swift过渡是要很长一段时间的. 当然swift最好也同时要学会. 第二种情况:你不考虑兼容性(iOS7以下版本,后面会提到)的情况下,完全可以只学习swift.不过ob

TIOBE2017年4编程开发语言排名和20年经验体会

可以访问链接查看详细排名 https://www.tiobe.com/tiobe-index/ 每月一次的语言热门排行榜又发布了,当然国外的语言热门程度和国内还是有一定的区别,不过也可以作为参考,大家一起说下自己工作的语言,给想要学习的同学做一些借鉴,我先说下我了解和熟悉的一些语言.首先声明不保证观点都正确,只是根据我近20年的学习和研发经验得出的体会,我也不会认为哪种语言最好,只是每种语言有不同的应用场景. 先说下我各种开发使用语言的背景,这样你也能判断出我那些体会是有价值的. 先说我现在工作

学习C语言第一天:在windows下使用gcc的条件

在windows下使用gcc的条件1,必须是提前安装了gcc这个程序 2,在windows系统path的环境变量中,代表windows从哪里寻找程序和相关的库,path中不同的路径用";"分割 在PATH中添加:C:\Qt\Qt5.3.0\Tools\mingw482_32\bin\C:\Qt\Qt5.3.0\5.3\mingw482_32\bin 3,打开命令窗口,输入gcc -v,如果看到gcc版本提示代表gcc配置成功4,打开qt生成一个空的项目,编译后,如果在我的电脑中双击生成

外语教育规划的语言经济学视角

一.引言 进入新世纪以来,随着全球化浪潮和科技革命的加速发展,以及世界经济.贸易.文化交往的日渐频繁,外语教育受到了前所未有的重视.世界各国为了在政治.军事.经济和外交领域掌握优势,纷纷采取措施加强外语教育. 近年来,国内也开始重视外语教育规划研究,但目前多数研究是基于教育学.社会语言学以及政治相关研究的讨论,以思辨和国际比较为主. 然而,由于上述学科本身的学科属性的局限,相关研究也存在诸多问题,进而造成我国外语教育规划研究中的一些不足,如:由于缺乏科学系统的理论基础和研究方法,其研究结果存在较

C++之语言概述

C++语言是广泛使用的程序设计语言之一,因其特有的优势在计算机应用领域占有重要一席. C语言的发展 20世纪70年代初,贝尔实验室的Dennis Richie 等人在B语言基础上开发出C语言,最初是作为UNIX的开发语言. 20世纪70年代末,随着微型计算机的发展,C语言开始移植到非UNIX环境中,并逐步成为独立的程序设计语言. C语言版本很多,为了让开发出来的代码能够在多种平台上运行,1988年ANSI(美国国家标准协会)对C语言进行了标准化,产生了ANSI C. C语言的特点 既有高级语言的

为什么首选C语言

对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员. 也许你将来的工作或学习不会使用C语言,但是它能让你了解编程相关的概念,带你走进编程的大门,以后学习其他语言,会触类旁通,很快上手,7 天了解一门新语言不是神话. C语言概念少,词汇少,包含了基本的编程元素,后来的很多语言(C++.Java等)都参考了C语言,说C语言是现代编程语言的开山鼻祖毫不夸张,它改变了编程世界. 正是由于C语言的简单,对初学者来说,学习成本小,时间短,结合本教程,能够快速掌握编程技术. 对于初学者,学

Java基础语言视频

java语言教程-第01讲-Java考古学java语言教程-第02讲-Java创世纪java语言教程-第03讲-Java基本概念java语言教程-第04讲-Java的变量java语言教程-第05讲-Java的基本数据类型java语言教程-第06讲-练习课(一)java语言教程-第07讲-运算符与表达式java语言教程-第08讲-分支语句java语言教程-第09讲-练习课(二)java语言教程-第10讲-循环语句 java语言教程-第11讲-练习课(三)java语言教程-第12讲-面向对象基础(一

windows环境下的C语言学习

作为一个小白,学习的最好方法就是随时记录,好记性比不过烂笔头.所以,从今天开始就开始C语言的学习,从头开始,全部记录下来,其次是我这人记性不好,不记下来不行. 学习环境:Windows 7 64bit 旗舰版 编译器:notepad++.vs2013 学习之前先要了解C语言的发展历程.标准.特点以及组成. C语言是一门通用计算机编程语言,应用广泛.C语言的实际目的是提供一种能已简易方式编译,处理低级存储器,产生少量机器码以及不需要任何运行环境支持便能运行的编程语言.尽管C语言提供了许多低级处理的

C语言学习second--C语言基础学习

1.标准C语言 C语言诞生于20世纪70年代,年龄比我们自己还要大,期间产生了很多标准,但是各种编译器对标准的支持不尽相同. ANSI C是使用的最广泛的一个标准,也是第一个正式标准,被称为“标准C语言”.ANSI C于1980年由美国国家标准局(American National Standards Institute,简称ANSI)对外发布,各种编译器几乎都完整支持ANSI C,市面上的书籍.大学里的教材.网上的教程大都以ANSI C为基础进行讲解,C语言中文网也不例外,也以ANSI C为基

C语言发展历史

发展历史C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言.1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言.c语言宣传图c语言宣传图20世纪60年代,美国AT&T公司贝尔实验室(AT&T Bell Laboratory)的研究员Ken Thompson闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电