| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 365 人关注过本帖
标题:不会,请求帮忙?
只看楼主 加入收藏
henji
Rank: 1
等 级:新手上路
帖 子:227
专家分:0
注 册:2009-4-19
结帖率:38.67%
收藏
 问题点数:0 回复次数:4 
不会,请求帮忙?
输入一个数,判断数组里面的元素是否与所输入的这个数相同,如果相同就删除?
#include "stdafx.h"

#include "stdio.h"
int main(int argc, char* argv[])
{
    int a[5]={1,2,3,2,5};//例如我输入2,如何将数组里面的元素是2的全部删除,输出为1,3,5?
    int b=0;
    int i=0;
    int sum=0;
    printf("input b:\n");
    scanf("%d",&b);

    for(i=0;i<5;i++)
    {
        if(b==a[i])
        {
            a[i]=a[i+1];
            sum=sum+1;
        }
    }
    for(i=0;i<5-sum;i++)
    {
        printf("%d",a[i]);
    }
搜索更多相关主题的帖子: 请求 
2009-10-12 20:32
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:0 
我告诉你原因,你再写个算法吧。

当运行到检测第二个数时,因为a[1]=2,所以把a[2]的值3赋给a[1],但后面a[2]a[3]a[4]均没进行前移。所以检测a[2]时,还是3。a[3]是2,所以变为a[4]的值5,但你输出的时候却统计了有几个不等于2,也就是有3个不等于2,所以只输出133。如果你输出4位,理论上是输出1335,输出5位就是13355。
简言之,就是当检测到是2时,从该位开始的后面每一位都要前移。

还有个小问题,主函数的结尾“}”没有copy上去。
另外问点问题#include "stdafx.h"是干什么?主函数的参数是做什么的啊?

[ 本帖最后由 pgy 于 2009-10-12 20:50 编辑 ]

我可好玩啦...不信你玩玩^_^
2009-10-12 20:49
xiaoqing8731
Rank: 2
等 级:论坛游民
帖 子:23
专家分:32
注 册:2009-10-9
收藏
得分:0 
#include "stdio.h"
 void main()
{
    int a[5]={1,2,3,2,5};//例如我输入2,如何将数组里面的元素是2的全部删除,输出为1,3,5?
    int b=0;
    int i=0;
    int sum=0;
    printf("input b:\n");
    scanf("%d",&b);
 
    for(i=0;i<5;i++)
    {
      if(b==a[i])
      a[i]=0;
    }
    for(i=0;i<5;i++)
    {  if(a[i]!=0)
        printf("%5d",a[i]);
    }
}    用数组比较简单  稍微一改就行了   你是一下  哈哈
2009-10-12 21:02
雷明
Rank: 2
等 级:论坛游民
帖 子:9
专家分:16
注 册:2009-10-11
收藏
得分:0 
相等时 改变原数组下标,即跳过i=2的下一个
#include "stdio.h"
 
    for(i=0;i<5;i++)
    {
        if(b==a[i])
        {
            a[i-sum]=a[i+1];   //改动
            sum=sum+1;         //
            i+=sum;            //
        }
    }
 
2009-10-12 21:07
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:0 
3楼简单,值得学习
4楼巧妙,值得分析

我可好玩啦...不信你玩玩^_^
2009-10-12 21:19
快速回复:不会,请求帮忙?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014021 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved