C语言 实现逆置功能
C语言 实现逆置功能
//凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/
1. 字符串的逆置
方法1:利用数组
#include<stdio.h>
#include<string.h>
void fun(char a[]){
int i,len;
char ch;
len=strlen(a);
for(i=;i<len/;i++){
ch=a[i];
a[i]=a[len--i];
a[len--i]=ch;
}
} void main(){
char s[];
printf("Pealse input a string:\n");
gets(s);
printf("The string has been inverted:\n");
fun(s);
puts(s);
}
结果为:
方法2:利用指针
#include<stdio.h>
#include<string.h>
void fun(char *a){
if(*a){
fun(a+);
printf("%c",*a);
}
} void main(){
char s[];
printf("Pealse input a string:\n");
gets(s);
printf("The string has been inverted:\n");
fun(s);
printf("\n");
}
结果为:
2.输入10个数,逆置输出
方法1:利用数组
#include<stdio.h>
#include<string.h>
#define N 10 #if(1)
void reverse(int x[],int n){
int i,j,temp,m;
m=(n-)/;
for(i=;i<=m;i++){
j=n--i;
temp=x[i];
x[i]=x[j];
x[j]=temp;
}
}
#endif #if(0)
void reverse(int *x,int n){
int *i,*j,*p,temp,m;
m=(n-)/;
i=x; //i->x[0]
j=x+n-; //j->x[n-1]
p=x+m; //p->x[m]
for(;i<=p;i++,j--){
temp=*i;
*i=*j;
*j=temp;
}
}
#endif void main(){
int i,a[N];
printf("Pealse input %d numbers:\n",N);
for(i=;i<N;i++){
scanf("%d",a+i);
}
reverse(a,N);
printf("The array has been inverted:\n");
for(i=;i<N;i++){
printf("%2d",a[i]);
}
printf("\n");
}
结果为:
方法2:利用指针
#include<stdio.h>
#include<string.h>
#define N 10 #if(0)
void reverse(int x[],int n){
int i,j,temp,m;
m=(n-)/;
for(i=;i<=m;i++){
j=n--i;
temp=x[i];
x[i]=x[j];
x[j]=temp;
}
}
#endif #if(1)
void reverse(int *x,int n){
int *i,*j,*p,temp,m;
m=(n-)/;
i=x; //i->x[0]
j=x+n-; //j->x[n-1]
p=x+m; //p->x[m]
for(;i<=p;i++,j--){
temp=*i;
*i=*j;
*j=temp;
}
}
#endif void main(){
int i,a[N];
printf("Pealse input %d numbers:\n",N);
for(i=;i<N;i++){
scanf("%d",a+i);
}
reverse(a,N);
printf("The array has been inverted:\n");
for(i=;i<N;i++){
printf("%2d",a[i]);
}
printf("\n");
}
结果为:
C语言 实现逆置功能的更多相关文章
- 2010: C语言实验——逆置正整数
2010: C语言实验——逆置正整数 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 949 Solved: 691[Submit][Status][We ...
- 【stut 逆置正整数】
C语言实验——逆置正整数 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 输入一个三位正整数,将它反向输出. 输入 3位正整数. ...
- C语言 链表的创建--打印--逆置--新增--删除--排序--释放
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string. ...
- C语言实现单链表的逆置
单链表的逆置是一个非常经典的问题,这里利用两个思想进行解决. 首先,我们需要看下原理图,其实两个思想都是一样的,都是使后一个的节点的 next 指针指向前一个节点,依次递推,直 ...
- 【C语言编程练习】7.1 线型表就地逆置
写在前面的话:直接从第5章跳到了第7章数据结构的趣题,原因是前面的数学趣题做久了,会觉得稍许疲倦,所以想“变个口味”,以后数学趣题和数据结构混合着练习. 1. 题目要求 编写一个函数,实现顺序表的就地 ...
- C语言strrev()函数:字符串逆置(倒序、逆序)
头文件:#include<string.h> strrev()函数将字符串逆置,其原型为: char *strrev(char *str); [参数说明]str为要逆置的字符串. s ...
- C语言实现整数数组的逆置算法
读入100个整数到一个数组中,写出实现该数组进行逆置的算法. 方法一: 假设100个整数读入到数组a中,算法f1的思想是分别从数组两端依次将对应数进行交换,即a[i]与a[100 - i - 1]进行 ...
- 已知单链表的数据元素为整型数且递增有序,L为单链表的哨兵指针。编写算法将表中值大于X小于Y的所有结点的顺序逆置。(C语言)
对此题目的完整示例可直接运行代码如下: #include <stdio.h> #include <stdlib.h> typedef struct LNode{ int dat ...
- 逆置单链表(基于c语言)
直接插入全部代码:(reverseLinklist函数是逆置操作) #include <stdio.h> #include <stdlib.h> #include <as ...
随机推荐
- Linux C 实现一个简单的线程池
线程池的定义 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务.线程池线程都是后台线程.每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中.如 ...
- 【转】JQuery上传插件Uploadify使用详解及错误处理
转自:http://www.jb51.net/article/43498.htm 关于JQuery上传插件Uploadify使用详解网上一大把,基本上内容都一样.我根据网上的步骤配置完成后,会报一些错 ...
- C# 插件热插拔
所谓热插拔就是插件可以 在主程序不重新启动的情况直接更新插件, 网上有很多方案: https://www.cnblogs.com/happyframework/p/3405811.html 如下: 但 ...
- CSharp工程中的几个文件
以下基于.NET Framework4.6及.NET Core2.0 .csproj 用于配置项目信息,如: 程序集名称.类型 Framework版本 项目所包含的文件信息,如:cs.html.js. ...
- c# 服务
注:服务里的timer System.Timers.Timer time=new System.Timers.Timer(); time.Interval = 3000; //设置计时器事件间隔执 ...
- [angularjs] angularjs系列笔记(二)指令
重复HTML元素 ng-repeat指令可以重复HTML元素 <body> <div ng-app="Home" ng-controller="inde ...
- Thinkphp table doesn't exist
系统采用Tp3.2的改造....集群为Mysql双工模式:平时M()主要是操作写,MS操作读...今天在查询 $res =MS("user u")->join("{ ...
- Java高并发--线程安全策略
Java高并发--线程安全策略 主要是学习慕课网实战视频<Java并发编程入门与高并发面试>的笔记 不可变对象 发布不可变对象可保证线程安全. 实现不可变对象有哪些要注意的地方?比如JDK ...
- 如何使用@vue/cli 3.0在npm上创建,发布和使用你自己的Vue.js组件库
译者按: 你可能npm人家的包过成千上万次,但你是否有创建,发布和使用过自己的npm包? 原文: How to create, publish and use your own VueJS Compo ...
- ES6 import and export
定义: 用来导入或者导出模块. ES6 的模块自动采用严格模式,不管你有没有在模块头部加上"use strict";. 严格模式主要有以下限制. 变量必须声明后再使用 函数的参数不 ...