| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 526 人关注过本帖
标题:一道C语言题,初学,不懂循环啊
只看楼主 加入收藏
sy245738344
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-7-14
结帖率:0
收藏
已结贴  问题点数:40 回复次数:4 
一道C语言题,初学,不懂循环啊
删除一维数组中所有相同的数,使之只剩下一个,数组中的数已由小到大排列。
如原数据为:2 2 2 3 4 4 5 6 6 6
删除后,数组中的内容是:2 3 4 5 6

[[it] 本帖最后由 sy245738344 于 2009-7-14 23:44 编辑 [/it]]
搜索更多相关主题的帖子: C语言 
2009-07-14 23:39
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:10 
cnt = sizeof(a)/sizeof(a[0]);
    for(i=0; i<cnt; i++){
        for(j=i+1; j<cnt; j ++){
            if (a[j] == a[i]){
                for (k=j + 1; k < sizeof(a)/sizeof(a[0]); k++){
                    a[k-1] = a[k];        
                }
                j --;
                cnt --;
            }    
        }
    }
    for(i=0; i<cnt; i++){
        for(j=i + 1; j<cnt; j++){
            if (a[j] < a[i]){
                a[i] = a[j] + a[i];
                a[j] = a[i] - a[j];
                a[i] = a[i] - a[j];
            }
        }
    }
    printf("cnt = %d\n", cnt);
    for (i = 0; i < cnt; i ++)
    {
        printf("a[%d] = %d\n", i,a[i]);
    }
2009-07-15 00:44
紫ing~
Rank: 4
来 自:中科大
等 级:业余侠客
帖 子:103
专家分:273
注 册:2008-11-25
收藏
得分:10 
我初学,帮你写个简单的,我试了基本也能符合你的要求
/* Note:Your choice is C IDE */
#include "stdio.h"
#define N 10
void main()
{ int a[20],i,j,k=0;
  printf("\n请输入10个数字:");
  for(i=0;i<N;i++)
  scanf("%d",&a[i]);
  for(i=0;i<N-k;i++)
  {
      if(a[i+1]==a[i])
      {
       for(j=i+2;j<N-k;j++) a[j-1]=a[j];
       k++;i--;
       }
 
      
  }
   for(i=0;i<=N-k;i++)
  printf("%d\t",a[i]);
   
}

唯有天道恒在,往复循环,不曾更改。。。
2009-07-15 01:23
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:10 
试着写了一下,谨作参考:
程序代码:
#include<stdio.h>

int main(void)
{
    int a[12]={2,2,3,3,4,4,4,5,5,6,6,6};
    int i,j;

    for(i=j=0;i<10;++i)
    {
        if(a[j]!=a[i])
        {
            a[++j]=a[i];
        }
    }
    for(i=0;i<=j;++i)
    {
        printf("%3d",a[i]);
    }
    puts("");

    return 0;
}
2009-07-15 02:14
如满月
Rank: 2
等 级:论坛游民
帖 子:25
专家分:30
注 册:2009-4-6
收藏
得分:10 
#include<stdio.h>
int main()
{ int a[10]={2,2,2,3,4,4,5,6,6,6},i;
  for(i=0;i<=8;i++)
   if(a[i]!=a[i+1])
     printf("%3d",a[i]);
  printf("%3d",a[i]);
  getchar();
  return 0;
}
2009-07-18 13:05
快速回复:一道C语言题,初学,不懂循环啊
数据加载中...
 
   



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

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