C语言中如何用指针变量的方法来实现1输入的十个数的逆序输出啊?、哪位大虾解答下?感激不尽!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中如何用指针变量的方法来实现1输入的十个数的逆序输出啊?、哪位大虾解答下?感激不尽!!!相关的知识,希望对你有一定的参考价值。

用C语言指针实现字符串逆序及回文串的判定
口裴晓英
(新疆兵团高等专科学校新疆·鸟鲁木齐831300)
摘要:字符串逆序输出是C语言经典算法之一,过去利用数组下标处理此类问题,较为繁琐,本文给出
了利用指针实现任意给定字符串的逆序输出方法,以及在此基础上进行回文字符串判断的便捷方法。
关键词:C语言指针字符串逆序算法回文
中图分类号:TP39 文献标识码:A 文章编号:1007-3973(2008 1 12-071.Ol
‘C语言中,实现任意给定字符串的逆序输出,是一道经
典常用算法,掌握此类算法,对于提高运用字符串能力及编
程综合能力都有很大的帮助。对于C语言字符串的处理,人
们惯常使用的是数组下标的方法,不仅效率低,而且估算下
标容易出错,准确率低,最为致命的还是下标一旦越界,会
出现乱码甚至程序崩溃。笔者经过试验、总结,提炼出用指
针实现字符串逆序输出的简便方法,并且在此基础上,应用
此类方法,我们可以方便快捷的解决同类的字符串处理问
题,例如回文的判断,本文也给出了相应实现办法.
1问题
(1)对于任意给定的字符串,进行倒置,打印输出该串
为原串的逆序。例如输入为“tomo玎ow”。则其存储和输出
即为“worromot”。
(2)判断任意给定字符串是否回文,输出相应提示信
息。
所谓“回文串”,即一个字符串正序读和逆序读时都
一样,如“level”或者“noon”等等就是回文串。
2算法思路
问题1)将一个给定字符串逆序存储
定义一个足够大的字符数组,用于存储用户输入的任
意字符串。再定义两个字符指针,分别指向字符串的头部和
尾部,交换两指针指向的字符,交换后两指针分别后移和前
移,循环交换对应位置的字符,直到两指针在中点相遇,则
整个串实现了与原串的逆序存储。
问题2)回文的判定:类似问题1)的处理方法,我们首
先定义一个足够大的字符数组,用于存储用户输入的任意
字符串。再定义两个字符指针,分别指向字符串的头部和尾
部,两指针分别后移和前移,依次判断对应位置的字符是否
相同,一旦不相同即退出循环,说明不是回文串,若一直相
同,直到两指针在中点相遇,则整个串是回文串,输出相应
信息。
问题I)和问题2)的核心算法,都是对对应位置的字
符进行比较判断,故我们都采用指针的方法可以很方便的
解决这两类问题。
3算法实现
对比:用数组下标的方式判定回文的算法实现(结合指
针的运用):
#include“stdio.h”
#include“string.h”
int mmnO

char sn-[50J,’p;
im i;
printf(“请输入字符串妇”);
scanq”%s”,s∞;
P-s也
t/把指针移动到字符串的末尾
矿矿strlen(str)-I;
for(i=O;i<(int)strlen(str);i++,p..)

if(+p!fstr[i])

printff”这个字符串不是回文、Il”);
return l;

'
printff”这个字符串是回文、ll”);
return O:

对比:用堆栈的方式判定回文的算法实现:
#include<stdio.h>
#define S1'ACK INIT SIZE loo
#dcfine STACK INCltEⅣ【ENT lO
typcdef struct

char+base;
char‘top;
int stacksizc;
SqStack;
int InitStack(SqStack‘S)

S->base=(char+)malIoc(STACK—INIT—SIZE+
sizeof(char)):
if(!S->base)
rg:t1.1nl 0:
S->top=S->basc;
S->s。tacksizc;STACK_INIT-sIZE;
rgturn l:
)
int净0:
intj=O;
char str[20],str2120];
斟m论丘·2008年第12期I下)
万方数据
戆黍熬j纛窦鬻鬃
基于SolidWorks拉深模三维CAD系统的研究
口张俊
(宿迁学院机电工程系江苏·宿迁223800)
摘要:本文简要介绍了开发拉深模具三维CAD系统的整体过程,并以凹模为例,详细阐述了模具各零部
件的三维设计步骤,并给出了凹模设计的方法和开发程序。
关键词:拉深模SolidWorks vB
中图分类号:TP39 文献标识码:A 文章编号:1007.3973 I 2008)12-072·02
筒形件拉深模具在汽车、拖拉机、飞机、钟表、电器和仪
表中得到了广泛应用,市场前景良好。目前,三维筒形件拉
深模CAD系统的研究和开发较为滞后,三维系统的开发迫
在眉睫,本研究对于促进模具三维软件的开发、提高模具设
计质量和生产效率、推进模具行业的快速成型技术和促进
制造业的全面发展,均具有重要的研究价值。
本系统采用Windows XP为操作系统、Visual Basic 6.0
为编程工具、SolidWorks 2006为图形处理软件、Microsoft
Access 2003为数据库管理系统。
1系统的需求分析
拉深模CAD系统的任务就是要使设计人员可以快速、
轻松查阅数据和表格,降低对设计人员经验的依赖性,辅助
设计人员进行决策,减轻设计人员绘图劳动,使拉深模设计
更轻松,实现三维造型设计,提高模具质量和设计效率。
筒形件拉深模CAD系统是一个比较复杂的系统,采用
结构化分析方法可简化系统的难度,准确表达用户需求,确
保软件开发成功。系统的详细数据流图如图l所示.
:£媚‘嫱牲0 ,瓤§
图1拉深模CAD系统详细数据流图
2系统结构的设计
本系统由六大模块构成:主控程序、产品信息输入模
块、工艺计算分析模块、模具设计与计算模块、模具三维图
生成模块及专用数据库和图形库。
(1)主控程序
主控程序即程序管理程序,对各模块进行综合管理,用
户通过此界面进入模具的其它各个模块,并对其进行操作。
(2)零件信息输入模块
零件信息输入模块将拉深件的几何尺寸和精度、材料
和工艺条件等信息输入到计算机内,并存入数据库中,为后
续设计提供拉深件的产品信息。
(3)工艺分析与计算模块
工艺分析与计算模块主要对零件的各个参数进行工艺
分析,判断参数是否符合工艺条件,并确定工艺参数。计算
出毛坯尺寸,判断是否能一次拉深成形,计算拉深次数、拉
深系数、各工序的半成品尺寸、压边力、拉深力、拉深功,并
将上述信息存入数据库中,为模具设计打下良好基础。
(4)模具设计与计算模块
模具计算过程包括计算凸、凹模尺寸、圆角半径,计算
零部件尺寸等。设计过程包括确定模具结构类型的选择、工
作部件的设计、辅助零件的设计及模架、标准件的选择。
(5)模具三维图生成模块
在三维绘图环境下,利用CAD软件生成模具零部件的
三维实体模型,最后在此基础上装配成该模具的装配体,为
用户的下一步工作(如生成二维工程图、CAD/CAM的集成
等)做准备。以凹模为例,介绍其开发过程。
SqStack s;
InitStack(&s);
prinff(”请输入一个任意字符串:ha”);
scanf(”‰”.stO;
forCi<strlcn(str);i++)
Push(&s,s仃【i1);
forCj<stricn(str);j++)
Pop(&s,&str20】);
if(strcmp(str,str2)一O)
pri.tf【”是回文串ha”);
clsc
prin氓”不是回文串、II”);

4结束语
将给定字符串逆序存储以及判断一个给定字符串是否
是回文,这两类问题,核心算法都是相同的,我们通过熟练
运用指针,可以方便灵活的予以解决,对比给出的数组及堆
栈的处理方法,指针解决方法简洁明了,易懂易用,易于移
植和扩展到相关字符串问题中,便于触类旁通、举一反三。
参考文献:
[1]谭浩强.C程序设计(第二版)[H].清华大学出版
社,2005.
[2]顾晓燕.C语言中指针和指针教学[J].福建电脑.2008年
(01).
[3]吴琼.陈新文.关于指针数组与指向指针的指针教学研
究[J].电脑开发于应用,2007年(总702).
斟协论lij·2008年第12期(下l
万方数据
用C语言指针实现字符串逆序及回文串的判定
作者: 裴晓英
作者单位: 新疆兵团高等专科学校,新疆·乌鲁木齐,831300
刊名:
科协论坛(下半月)
英文刊名: SCIENCE & TECHNOLOGY ASSOCIATION FORUM
年,卷(期): 2008,""(12)
被引用次数: 0次
参考文献(3条)
1.谭浩强C程序设计 2005
2.顾晓燕C语言中指针和指针教学[期刊论文]-福建电脑 2008(01)
3.吴琼.陈新文关于指针数组与指向指针的指针教学研究[期刊论文]-电脑开发与应用 2007(总702)
相似文献(10条)
1.期刊论文吴琼.WU Qiong C语言指针教学方法研究 -鄂州大学学报2009,16(2)
指针是C语言的精华和重要特色,理解指针的概念应从计算机存储系统硬件结构入手,它是C语言学习的重点和难点,数组也是C语言学习的重点和难点
,针对指针数组与指向指针的指针这一教学难点.该文用图示方法将复杂的概念形象地表示出来,用对比方法阐释比较容易混淆的概念,通过简单实用的程
序对比分析二者的应用,揭示它们的区别与编程意义.
2.期刊论文王恒滨.闫东升关于C语言指针定义的讨论 -辽宁财专学报2004,6(2)
在教学和实践中发现,C语言指针定义的信息量不足,难于解释指针使用的许多方面.本文大胆地剖析了已有的定义,从中找出问题所在,并试图加以改
进.还结合实例给出了"拟构"概念,较好地说明了相关知识尤其是指针与数组的关系.
3.期刊论文李忠武.Li Zhong-wu C语言指针探讨 -保山师专学报2005,24(2)
结合实例从五个方面对C语言指针进行分析和探讨:阐述C语言指针的概念和正确使用指针变量,区分指针变量和指针的指向变量的含义和用法;通过判
断变量与运算符*、[]和()的结合顺序来确定变量的数据类型及指向变量或成员变量的类型;指出指针与数组的关系,通过指针来访问数组元素和采用下标
法数组元素的等价关系;作为函数参数的指针变量,可以改变所指向的主调函数变量的值;指针可以实现动态存储分配,用来实现对链表的创建、插入和删
除等操作.
4.期刊论文娄浩韬 C语言指针研究 -硅谷2008,""(2)
指针是C语言的精华,抛开指针的C语言是没有生命力的.我们认为深入理解指针的本质含义,对指针进行理性分析和研究将有助于我们进一步加深对
C语言程序编程的认识和应用.
5.期刊论文陈建辉 C语言指针探讨 -莆田高等专科学校学报2001,8(4)
结合实例从五个方面对C语言指针进行分析和探讨:阐述C语言指针的概念和正确使用指针变量,区分指针变量和指针的指向变量的含义和用法;通过判
断变量与运算符*,[]和()的结合顺序来确定变量的数据类型及指向变量或成员变量的类型;指出指针与数组的关系,通过指针来访问教组元素和采用下标
法数组元素的等价关系;作为函数参数的指针变量,可以改变所指向的主调函数变量的值;指针可以实现动态存储分配,用来实现对链表的创建、插入和删
除等操作.
6.期刊论文深入理解C语言指针 -内江科技2005,""(6)
指针是C语言的精华和核心部分,充分体现了C语言的灵活性,增强了C语言的功能.本文从指针的定义、指针的功能及由于指针的使用带来的安全性等
方面深入地分析了C语言的指针.
7.期刊论文邓满英.DENG Man-Ying 浅析C语言指针 -襄樊职业技术学院学报2010,9(1)
C语言功能丰富、使用灵活方便,主要体现在其指针灵活且无所不指上.指针是C语言的灵魂、精华与根本所在,其内容也是C语言的重点及难点.能否正
确理解和使用指针是衡量学生掌握C语言的一个重要标志,也直接影响学生对<数据结构>和<操作系统>等后续课程的学习和把握.本文从指针的概念、指针
的运算等来浅析C语言指针.
8.期刊论文吴斌.WU Bin C语言指针的教学 -安徽职业技术学院学报2004,3(3)
指针是C语言的低级语言特性.使用指针程序员可以按地址操作计算机内存,灵活实现一些特定功能;使用指针可以方便地表达复杂的数据结构,使程序
简洁、高效、紧凑,指针是整个C语言课程的重点以及后续课程的重要基础.指针是C语言教学难点,在教学中采取适当的策略和方法完全可以取得较为满意
的效果.
9.期刊论文彭程.杨春生C语言指针操作技巧探讨 -中国高新技术企业2008,""(10)
指针增加了我们控制程序的灵活性,但是指针使用不当就会出现野指针,危害整个程序的运行,所以在程序中使用指针时应十分小心,养成良好的编码
习惯,避免出现野指针.
10.期刊论文刘丽梅 复习C语言应注意的几个方面(之四)--针对CCT C语言指针部分 -承德职业学院学报
2005,10(3)
本文主要针对CCT中的C语言部分,在复习时应该注意的几个方面,以讲、例结合的方式作了详细的论述.
参考技术A

1 输入十个数,以指针方式,每输入一次,指针自加。

2 指针自减一次,即指向最后一个。

3 输出10次,依次自减,即可达到目的。

#include <stdio.h>
int main()

    int a[10], *p;

    for(p = a; p < a+10; p ++)
        scanf("%d",p);
    while(--p >= a)
        printf("%d,",*p);
        

参考技术B #include<stdio.h>
void main()

int num[10];
int * p = num;
for (;p < num + 10;p++)//输入
scanf("%d",p);
p = num + 9;
for (;p >= num;p--)//输出
printf("%d\t",* p);
如有不懂欢迎提问。

Java中如何用其他方法实现大小写转换

在不使用touppercase()的情况下,实现大小写转换

public class Test
    public static void main(String[] args)
        Test test = new Test();
        String str1 = "abcdefg";
        String str2 = "QWERT";
        //转成大写
        System.out.println(test.changeString(str1,true));
        //转成小写
        System.out.println(test.changeString(str2,false));
        
    

    //小写字母转大写
    public char toUpper(char ch)
       if(ch <= 122 && ch >= 97)
            ch -= 32;
       
       return ch;
    
    
    //大写字母转小写
    public char toLower(char ch)
        if(ch <= 90 && ch >= 65)
           ch += 32;
        
        return ch;
    
    
    //转换字符窜 flag 为true 大写
    public String changeString(String str,Boolean flag)
        char[] ch = str.toCharArray();
     StringBuffer sbf = new StringBuffer();
        for(int i=0; i< ch.length; i++)
          if(flag)
            sbf.append(toUpper(ch[i]));
          else
             sbf.append(toLower(ch[i]));
          
        
        return sbf.toString();
     
 

参考技术A 写一个map,key是小写字母,value写大写字母。
准备一个stringbuilder对象。
接收一个英文字符串。
写for循环,逐一取字符,根据字符取map中对应Value。
把取得value追加到stringbuilder对象结尾。追问

嗯……可以举个例子写一下大概的代码吗?初学者表示看不大明白

追答

私聊吧

以上是关于C语言中如何用指针变量的方法来实现1输入的十个数的逆序输出啊?、哪位大虾解答下?感激不尽!!!的主要内容,如果未能解决你的问题,请参考以下文章

C语言:对输入的十个数进行从小到大排序

keil51中如何用C语言定义寄存器的地址并给地址赋值

在C语言中如何用把二维数组中的一行贼给一维数组?

在C语言中如何用把二维数组中的一行贼给一维数组?

C语言中如何用名字存数组,用时间函数模拟随机,实现随机输出一个姓名。

Java中如何用其他方法实现大小写转换