首页 > 编程语言 >C程序设计语言(第2版·新版)练习题1-19

C程序设计语言(第2版·新版)练习题1-19

时间:2024-09-01 20:50:24浏览次数:15  
标签:练习题 reverse 19 void ++ char int 程序设计 line

练习1-19 编写函数reverse(s),将字符串s中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序。


#include <stdio.h>

#define MAXLINE 1000

int getline(char s[], int lim);
void reverse(char s[]);

int main(int argc, char *argv[]) {
    (void)argc;
    (void)argv;
    
    int len;
    char line[MAXLINE];
    
    while ((len = getline(line, MAXLINE)) > 0) {
        reverse(line);
        printf("[%d]%s", len, line);
    }
    return 0;
}

int getline(char s[], int lim)
{
    int c, i;
    for (i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; i++) {
        s[i] = c;
    }
    if (c == '\n') {
        s[i] = c;
        i++;
    }
    s[i] = '\0';
    return i;
}

void reverse(char s[])
{
    int i = 0, j = 0;
    char temp;
    while(s[i] != '\0') {
        i++;
    }
    i--;
    if (s[i] == '\n') {
        i--;
    }

    while (j < i) {
        temp = s[j];
        s[j] = s[i];
        s[i] = temp;
        j++;
        i--;
    }
}

运行结果:

标签:练习题,reverse,19,void,++,char,int,程序设计,line
From: https://blog.csdn.net/VincentKCSDN/article/details/141759293

相关文章

  • 招商银行信用卡中心2019秋招IT笔试——比特币最佳买卖时机
    给定一个正整数数组,它的第 i 个元素是比特币第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一次),设计一个算法来计算你所能获取的最大利润。注意你不能在买入比特币前卖出。时间限制:C/C++1秒,其他语言2秒空间限制:C/C++32M,其他语言64M输入描述:正整数数组,为......
  • PAT乙级 1019.游戏黑洞(测试点2.3.4.5)
    一、题目给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。例如,我们从6767开始,将......
  • 程序设计训练3.11数码管
    程序设计训练3.11数码管【问题描述】液晶数码管用七笔阿拉数字表示的十个数字,把横和竖的一 个短划都称为一笔,即7有3笔,8有7笔等。对于十个数字一种排列,要做到两相邻数字都可以由另一个数字加上几笔或减去几笔组成,但不能又加又减。比如 7→3是允许的,7→2不允许。任意输入一组数,判断是......
  • 240719 聚类算法的评价
    结果。评价kmean在集群的最佳数量,我们迭代一系列的值,找出其中的峰值的性能度量聚类算法的一个好方法是观察集群被分离的离散程度#-*-coding:utf-8-*-importnumpyasnpimportmatplotlib.pyplotaspltfromsklearnimportmetricsfromsklearn.clusterimportKM......
  • 基于Python的机器学习系列(19):K均值聚类(K-Means Clustering)
    简介        K均值聚类(K-MeansClustering)是一种常用的无监督学习算法,用于将数据样本划分为若干个“簇”,使得同一簇内的数据点彼此相似,而不同簇的数据点之间差异较大。由于K均值不依赖于标签,因此它是一种无监督学习方法。常见的应用包括客户细分、图像分割和数据可视......
  • Windows Server 2019 OVF, updated Aug 2024 (sysin) - VMware 虚拟机模板
    WindowsServer2019OVF,updatedAug2024(sysin)-VMware虚拟机模板2024年8月版本更新,现在自动运行sysprep,支持ESXiHostClient部署请访问原文链接:https://sysin.org/blog/windows-server-2019-ovf/,查看最新版。原创作品,转载请保留出处。现在都是自动sysprep的......
  • codeforces做题记录(1924B)& 回顾线段树
    1924B.SpaceHarbour题意:n个点排成一行,其中某些点上面建有港湾,港湾有一个权值,对每个点我们定义点的权值为“左边(包括自己)第一个港湾上的权值\(\times\)到右边(包括自己)第一个港湾的距离”(保证在一开始1号和n号点上都有港湾)。有q次操作:操作1给定x和v,表示在x点上建立权值为v的......
  • 代码随想录算法训练营,8月31日 | 24. 两两交换链表中的节点,19.删除链表的倒数第N个节点
    24.两两交换链表中的节点题目链接:24.两两交换链表中的节点文档讲解︰代码随想录(programmercarl.com)视频讲解︰两两交换链表中的节点日期:2024-08-31做前思路:用上虚拟头指针,从头开始,先指向2再到1,再到3,但要注意保留原本的结点。Java代码如下:classSolution{publicListN......
  • leetcode刷题day4|链表部分(24. 两两交换链表中的节点 、19.删除链表的倒数第N个节点、
    前言:链表练习的第二天,对链表的理解加深了24.两两交换链表中的节点这个题一开始的思路是用cur和next两个指针来做,但是绕来绕去绕迷糊了,最后超时了。把错误的代码放在下面警醒大家:主要问题出现在这两行代码,next.next发生了更改。next.next=next.next.next;next.next.nex......
  • HJ19 简单错误记录 || 字符串模拟
    就是字符串模拟和处理。最大的问题就是题面题意写得真的挺模糊的,好多地方有点表意不明。。1#include<bits/stdc++.h>2usingnamespacestd;3constintmaxn=110;4chara[maxn][maxn];5intb[maxn],num_qc=0,cnt[maxn],ans[maxn],num_ans=0;6boolfg[maxn],f[ma......