请问在编写程序时如何删除相同的代码(c语言)?

作者&投稿:阎疤 (若有异议请与网页底部的电邮联系)
小弟求教C语言简单问题【删除一个字符串中重复字符】(我已编出程序,求指教)~

你定义的n用来表示字符串的长度,每次移动以后,n减少1,但是实际的字符串长度并没有改变。
在输出的那行之前加一个字符串的结束符
c[n]='\0';
还有一个问题,你的算法是访问到第i个数的时候,从i+1开始向后遍历,如果存在相同的第j个数,那么从第j个开始,后面依次覆盖前面的,对吧?
但是仔细想一下,这种想法是不对的,移过1次以后,第j+1个数的位置已经改变到j的位置上了,接下来遍历的时候,下一个遍历的实际上已经是原来的j+2位置上的数了。
15行开始j的循环里面有改动,就是如果存在相等的,移动后还遍历原位置,不自增。
不知道有没有说明白。如下:
#include
#include
main()
{
int i,j,k,n;
char c[100];
gets(c);
n=strlen(c);
for(i=0;i<n;i++)
{
for(j=i+1;j<n;)
{
if(c[i]==c[j])
{
for(k=j;k<n;k++)
{
c[k]=c[k+1];
}
n--;
}
else
j++;
}
}
printf("%s
",c);
}

图片在哪里???
#include

#include

struct
node
{
int
num;
struct
node
*next;
};//定义节点
int
main()
{
struct
node
*p,*temp,*head;
int
i,a=1;
temp=(struct
node
*)malloc(sizeof(struct
node));//开辟一个节点空间
temp->num=a;
head=p=temp;//得到头结点
p->next=null;
for(i=0;i<9;i++)
{
a=a+2;
temp=(struct
node
*)malloc(sizeof(struct
node));
temp->num=a;
temp->next=null;
p->next=temp;
p=p->next;
}
p=head;
for(;p
!=
null;)//打印链表
{
printf("%d,"p->num);
p=p->next;
}
return
0;
}

编辑-查找和替换:将
替换为
,勾选全字匹配,点击全部替换




php写完代码怎么执行(php编写程序)
6、服务器搭设完成。新建一个文档另存在上面的目录里,文件名保存为index.php(自由发挥)。然后写一个你认为最简单的网页进行保存。7、在浏览器网址处输入127.0.0.1,即可看到刚编写的网站主页,即php代码运行的效果。下载的php源码怎么运行?要想运行PHP代码,你得现有一个服务器环境。1.在网上自己...

什么情况下可以利用递归来解决问题?再写递归程序时应注意是什么_百度知 ...
比如阶乘,也就是说求n可以先求n-1,以此类推,到1,这类问题都可以用递归解决,菲波拉锲数也可以递归。因为递归是总是调用自身解决问题,所以,必须有结束条件,否则会出问题,导致内存卡爆

如何写出好的Java代码
开发一个稳固系统时,你得自己验证自己的classes或程序的性质。8. 在你撰写class之前先写测试码,以便验证你的class 是否设计完备。如果你无法撰写测试码,你便无法知道你的class 的可能长相。撰写测试码通常能够显现出额外的特性(features)或限制 ( constraints)__它们并不一定总是能够在分析和设计过程中出现。测试码...

如何在运行指定程序时(VB编写),禁止其他程序打开
这个可能性不太大,因为VB对底层的操作比较差,不过你可以这样,用钩子拦截系统的信息流,判断,当系统的焦点要离开测验程序时(不要相信VB自己的那个窗体事件,在失去焦点这个事件上,VB根本判断不出来),测验程序记录入成绩并退出,再加上说明,这样就会让人无法离开测验程序后再回来了。当然,记录的...

程序员在程序编写和编译的时候为什么要知道自己的程序将放在主存中的...
这涉及系统内存的保留地址的问题。因为操作系统本身也是在内存中运行的,所以就会有一部分内存是专供操作系统使用;如果你动了在内存中运行的操作系统的某些数据,轻则系统出现故障重则死机!同时还涉及中断调用时内存使用的问题。以及其它的很多需要考虑的问题。

教您在Java开发过程中如何应对异常处理
Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。这种机制为复杂程序提供了强有力的控制方式。同时这些异常代码与“常规”代码分离,增强了程序的可读性,编写程序时也显得更灵活。Java中的异常类 在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当...

如何用django框架写程序(2023年最新解答)
导读:今天首席CTO笔记来给各位分享关于如何用django框架写程序的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!如何用django开发一个简易个人Blog-Python 设计并实现一个基于Python的个人博客系统,需要完成如下功能 完成个人博客系统的设计和开发 用户可以通过个人博客系统,发布最新的日志 运用所学...

编写程序时要尽量节省空间,把多条语句写在同一行吗
节省空间说的应该是内存空间吧?多条语句写在同一行的话,语法上没问题,就是看着不好看,约定俗成不在一行

我的梦想是成为一名出色的程序设计人员,想问问那些成功的朋友们,我要...
我刚接触到电脑就发现电脑的妙处:电脑远没有人那么复杂,如果你的程序写得好,你就可以和电脑有着非常融洽的关系,就可以指挥电脑干你想干的事,这个时候,你是十足的主宰。每每坐在电脑面前,你就如同在一个王国里巡行。电脑里的世界很大,程序员是活在自己想象的王国里。你可以细微到电脑里的每一...

如何优化你的C代码
一、程序结构的优化1、程序的书写结构虽然书写格式并不会影响生成的代码质量,但是在实际编写程序时还是应该尊循一定的书写规则,一个书写清晰、明了的程序,有利于以后的维护。在书写程序时,特别是对于While、for、do…while、if…elst、switch…case等语句或这些语句嵌套组合时,应采用“缩格”的书写形式,2、标识符程序...

滦平县19223692801: 如何编写程序,在被调函数中删去一维数组中所有相邻且相同的数, 使之只剩相邻数字不重复的序列? -
曲绿仁苏: 如果已经排好序的就非常简单, 只需要检测下一个是否和上一个一样,一样就跳过,直到不一样再输出, 伪代码: for(int i=0;i<len-1;i++) {if(a[i+1]==a[i])continue; cout<<a[i]<<endl; }

滦平县19223692801: c++编程:输入一串字符,删除该串字符中所有的与给定字符相同的字符.要求:用函数完成 -
曲绿仁苏: 没错,他是只能接收一个字符,但是因为你是在while里面循环,如果但他没有收到换行符时,他是会不断接收下一个字符的. while((c=getchar())!='\n') //就是这个换行符{ } 如果你想验证我的说你可以把上面的代码改成这样,当你输入3时他就不会收下个字符了. while((c=getchar())!=3) //就是这个换行符{ }

滦平县19223692801: 我编了一个Java代码,目的是删除重复行 -
曲绿仁苏: 把 String[] line --> 改成 Set<String> lines = new LinkedHashSet<String>(); 然后在 line[i] = stream.readLine(); 这样的代码改成 lines.add(stream.readLine());即可.因为 Set类型的集合,是不允许有重复的,如果有重复,它自己会忽略.

滦平县19223692801: 编程实现:字符串删除重复字符 -
曲绿仁苏: 如果只是找相邻的重复字符,那么就挨个跟前一个字符比较,不相同的就移动到另一个字符串中,相同的就不移动 如果要求所有字符都没有重复的,那么就跟前面的所有字符比较,如果跟前面的都不相同就移动到另一个字符串中,如果相同,那么就根据要求舍去1个

滦平县19223692801: 请问C++数据如何将相同的成员删掉? -
曲绿仁苏: 最简单的方法 DWORD data[8]; data[0] = dwData[0]; int index = 1; bool flag; for(int i = 1; i < 8; ++i) { flag = false; for(int j = 0; j < index; ++j) { if( data[j] == dwData[i] ) { flag = true; } } if( flag ) { data[index] = dwData[i]; ++index; } } 这样结束以后data数组就是你想要的了.

滦平县19223692801: C语言删除链表中相同的元素 代码怎么写 -
曲绿仁苏: 比较困难,你可以试着复制这个链表,然后用一个链表里的元素去与另一个链表的全部元素做比较,把除自身以外相同的元素删除.

滦平县19223692801: 有谁知道如何用C++编写“删除序列中相同的数”这段程序啊,急用啊~~!! -
曲绿仁苏: 很久没来了.哈哈. 看看这个吧: #include <iostream> #include <vector> using namespace std; void del(vector<int> &a) { if(a.size()==0) return; for(unsigned i=0;i<a.size();i++) { for(unsigned j=0;j<i;j++) { if(a[i] == a[j]) { a.erase(a.begin()+i);...

滦平县19223692801: c语言删除重复字符 -
曲绿仁苏: 你这个代码是删除字符串中的a,不是删除重复的字符,而且用来过度的F[]没有用到,问题比较多,试下这个!Char f[27]; Int I=0,j,k=0; While(chr[i++]!=\0) {for(j=0,j<27,j++) If chr[i]==chr[j] Else f[k++]=chr[i]; } For (j=0,j<27,j++) Chr[j]=f[j]

滦平县19223692801: 编写程序,读入一个整数数组,删除值相同的多余元素,输出新的数组 -
曲绿仁苏: 代码如下(java): import java.util.Arrays; public class Test2{ public static void main(String[] args) { int[] a = {1,1,4,4,3,3,5,3,8,0,5,1}; System.out.println("输入的数组为:"+Arrays.toString(a)); a = Arrays.stream(a).distinct().toArray(); System....

滦平县19223692801: vb编程里 怎么去除list控件里重复的内容 比如list1里的内容是 111 111 222 -
曲绿仁苏: 这个方法很多的:都需要循环来完成1,可以采用循环搜索比较,从上到下进行,一一排除.2,也可以采用,读取到数组里,排除重复.下面是方法一的代码.Dim i As Integer Dim j As Integer i = 0 Do While ij = i + 1 Do While jIf List1.List(i) = List1.List(j) Then List1.RemoveItem j Else j = j + 1 End If Loop i = i + 1 Loop

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网