C语言程序设计思路

编写一个函数InverseByWord(char *sentence),实现一个英文句子按单词逆序存放的功能,并给出测试程序。
如:This is an interesting programme.
逆序后变为:.programme interesting an is This

程序如下:
#include "stdio.h"
#include "string.h"
void InverseByWord(char *sentence)
{
int n,i,j;
n=strlen(sentence);
for(i=n-1;i>-1;i--)
{
if(*(sentence+i)=='\0')
{
printf("%c",*(sentence+i));
*(sentence+i)='\0';
}
if(*(sentence+i)==' ')
{
n=strlen(sentence);
for(j=i+1;j<n;j++)
{
printf("%c",*(sentence+j));
*(sentence+j)='\0';
}}}
printf("%s\n",sentence);
}
void main()
{
char pStr[100]="This is an interesting programe";
InverseByWord(pStr);
}

怎么对该程序进行说明?就是这个程序的设计思路。本人初学者 在网上找的答案 这个程序看不明白 请解释一下 谢谢 紧急啊 下午交作业啦

代码只是实现了逆序输出,而没有把sentence中的内容逆序,每逆序输出一个单词,都用结束符来替换。

#include "stdio.h"
#include "string.h"
void InverseByWord(char *sentence)
{
int n,i,j;
n=strlen(sentence);// 计算字符串长度。

for(i=n-1;i>-1;i--)// 从最后一个元素开始循环,直到第一个元素

{
if(*(sentence+i)=='\0')//如果是结束符的话,仍然设置为结束符。由于字符串长度不变,所以结束符位置不变。
{
printf("%c",*(sentence+i));// 输出结束符

*(sentence+i)='\0';//设置结束符
}
if(*(sentence+i)==' ')// 如果是空格的话,说明新的单词开始。

{
n=strlen(sentence);// 计算字符串长度

for(j=i+1;j<n;j++)// 从i+1开始输出新的单词

{
printf("%c",*(sentence+j));
*(sentence+j)='\0';// 输出后清除字符。

}}}
printf("%s\n",sentence);//输出字符串
}
void main()
{
char pStr[100]="This is an interesting programe";
InverseByWord(pStr);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-28
需要具体问题具体分析
基本上可以按照以下流程,中间以设计一个成绩单为例:
1 了解问题。要解决问题,必须先了解每个细节。
如要设计一个成绩单,至少要包括录入成绩,成绩统计,成绩排序,成绩输出。
2 确定解决问题的流程,确认输入输出内容即内部需要做的操作。
输入:用户的选择指令,成绩的输入。
输出:程序的运行结果,也就是最终的成绩单。
操作:对成绩读入,对成绩累加得到总分,按照总分排序,输出排序后的成绩单。
3 设计操作算法。得出数据流图
对每块的操作流程做设计。如如何读入成绩,如何排序,如何输出等。
4 编写代码。
将算法实体化,形成C代码。
5 测试并解决问题。
编译运行,尝试输入多组数据,测试结果是否与预期相同。如果不同,那么查找问题并修改代码。最终形成合格的程序。
第2个回答  2015-11-04
1、对于任何语言当然也包含C语言,编程思路都是类似的,都离不开“数学”这个范畴,编程的目的其实根本一点就是对数据进行加工处理,从这一点出发,就理清了一个思路:
2、首先就是建立一个数据模型,C语言的函数库中有丰富的数学函数供调用,用来解决实际问题。其次就是规划变量,哪些使用全局变量,哪些采用局部变量。第三就是规划模块,将要达到的编程目的分成各个模块,这样可以使程序清晰一些,以后修改或扩展都更容易。
第四就是养成一个画流程图的习惯,这样可以在这个过程中会帮助完善很多的编程思路。
第3个回答  2012-07-04
运行一下不就一目了然了吗?
其实就是把字符串pStr按单词为单位逆序输出来。
在遇到第一个空格前两个if是不会执行的,直到遇到空格(programe前面那个),然后就将空格后那个字符输出,紧接着就把输出的字符用'\0'替换掉了。所以输出完programe后字符串就已经少一个单词了的,字符串输出结束后,数组就成空数组了……
希望对你有帮助
第4个回答  2015-10-27

代码只是实现了逆序输出,而没有把sentence中的内容逆序,每逆序输出一个单词,都用结束符来替换。


#include "stdio.h"
#include "string.h"
void InverseByWord(char *sentence)
{
int n,i,j;
n=strlen(sentence);// 计算字符串长度。

for(i=n-1;i>-1;i--)// 从最后一个元素开始循环,直到第一个元素

{
if(*(sentence+i)=='\0')//如果是结束符的话,仍然设置为结束符。由于字符串长度不变,所以结束符位置不变。
{
printf("%c",*(sentence+i));// 输出结束符

*(sentence+i)='\0';//设置结束符
}
if(*(sentence+i)==' ')// 如果是空格的话,说明新的单词开始。

{
n=strlen(sentence);// 计算字符串长度

for(j=i+1;j<n;j++)// 从i+1开始输出新的单词

{
printf("%c",*(sentence+j));
*(sentence+j)='\0';// 输出后清除字符。

}}}
printf("%s\n",sentence);//输出字符串
}
void main()
{
char pStr[100]="This is an interesting programe";
InverseByWord(pStr);
}

c语言程序设计的基本思想
模块化的思想模块化程序的特点:单入口、单出口基本的三种结构:顺序、分支(选择)、循环;这三个基本结构来安排模块执行的步骤;循环三要素:初值、条件、更新;面对编程问题:三步走策略(输入+处理+输出);编程思想:分而治之+变量跟踪+换位思考C语言是一门面向过程的、抽象化的通用程序设计语言,...

C语言结构化程序设计的思想和方法原则是什么?
1、只采用三种基本的程序控制结构来编制程序,从而使程序具有良好的结构;2、程序设计自顶而下;3、用结构化程序设计流程图来表示算法。

C语言程序结构的设计方法有哪些?
方法1:(利用比较法)方法2:(利用起泡法)方法3:(利用函数的模块化设计)

用C语言编写程序:有五个学生的三门课程的成绩,求每门课程的平均成绩_百 ...
程序设计思路:首先我们需要定义一个学生的结构体,用于存放学生信息;接着是3个方法,一个输入学生信息的方法,一个是计算学生每门课程平均成绩的,最后一个是输出学生所有信息,包括计算好的平均成绩,具体实现代码如下:include <stdio.h> include <stdlib.h>#define ARRAY_LEN 100 \/*数组长度*\/ ...

c语言简单顺序程序设计原理是什么?
(1)顺序结构 顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。例如;a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = b; b ...

c语言程序设计,设计一个简单的程序,能完成加减乘除运算,网上搜的答案...
1、简单版本的,输入两个数一个操作符:“1 + 2”类似这种,直接获取两个数以及操作符,用switch语句来分别对不同操作符进行操作。2、复杂版本的,随意输入表达式,可以有括号以及其他运算符,“1+2*8+(6\/7)^3”类似这种,有四种解决办法:2.1、一遍一遍地扫描字符串,优先级越高的运算符越先...

c语言程序设计内容简介
本书以“案例引领,任务驱动”的教学方法,深入浅出地引导读者学习C语言程序设计。它采用"案例展示—归纳总结—模仿练习—自主设计"的学习路径,逐步提升读者的实践技能,让学习过程既系统又有序。全书案例设计遵循“任务需求—问题剖析—详细解析—归纳总结”的逻辑,强调在编程前先进行算法设计,培养读者用...

谈谈如何才能学好c语言
C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在...

c语言的程序开发流程图
C语言程序的开发流程可以概括为以下几个步骤:1. 需求分析:明确程序要实现的功能和需求,确定程序的结构和模块。2. 设计:根据需求分析的结果,设计程序的总体结构和各个模块的细节。3. 编写代码:根据设计文档,使用C语言编写程序代码。通常会先编写主程序,再逐个实现各个模块。4. 编译:将编写的代码...

c语言 程序设计 解题步骤是什么
上的程序,复杂的有时需要用时序图、序列图或UML图来分析。1、语法和逻辑处理,这个是最基本的基本功。一定要扎实。2、要有分层分离的概念,从整个框架来理解代码,最好可以作图辅助分析。3、了解技术相关的关键词以及功能作用,积少成多。4、c语言面向过程,C++、java面向对象。两种思想都需要学习并...

相似回答