论坛: 编程破解 标题: 哪位大侠教我做这道题? 复制本贴地址    
作者: ive [ive]    论坛用户   登录
  有一维数组解决如下问题。读取20个在10到100之间的不重复的整数。每读取
一个值时,如果它与已读取的值不重复,就打印出该值。用尽可能小的数组解决这
个问题。
拜托啦!

地主 发表时间: 12/09 14:42

回复: honyry [honyry]   论坛用户   登录
题意不太明白哦!能不能举例说一下啊?

B1层 发表时间: 12/09 15:04

回复: kenter1643 [kenter1643]   论坛用户   登录
int a[19];i,j;
printf("%d",&a[0]);
for(i=0;i<20;i++)
for(j=i+1;j>0;j--)
{if(a[j]==a[i+1]) return;
else printf("%d",&a[i]);
}
你的意思说的不清楚,我乱做了个,假设数组原先有元素的


[此贴被 kenter1643(kenter1643) 在 12月09日15时33分 编辑过]

B2层 发表时间: 12/09 15:33

回复: honyry [honyry]   论坛用户   登录
main()
{int a[20],temp,j=0,i=1;
while(i<=20)
      {
      scanf("%d",&temp);
      if(temp>=100&&temp<=10)
        return;
      for(j=i-2;j>=0;j--)
        if(temp==a[j])
          return;
      i++;
      a[i-1]=temp;
      }
for(i=0;i<20;i++)
    printf("%d ",a[i]);
}
这个满足条件吗?
有自动判断不符合条件功能!不过数组的地址操作有点记不清了。

B3层 发表时间: 12/09 16:18

回复: 子木 [lwei889]   论坛用户   登录
看了楼上的程序,才明白楼主的题说的是什么意思
但我发现楼上的程序有点毛病:
      if(temp>100&&temp<10)这个条件能同时成立吗?
另外 这个程序好象不能满足楼主的题目要求哦!!

B4层 发表时间: 12/10 14:01

回复: spirn [spirn]   论坛用户   登录
题目要求用尽可能是数组,而且数字>10<100,所以定义char[],用int就太大了。一共输入20个数字,判断重复只要19个数组,而不是20个,所以 定义数组应该是 char a[19]

B5层 发表时间: 12/10 16:58

回复: 286 [unique]   版主   登录
TO sprin:
“尽可能小”你的理解很不错,不过我的理解是元素尽可能少。如果尽可能少(又必须得用)的话,用int也可以。因为数值小于100,所以一个int可以表示多个值。比如低两位表示一个,百位和千位表示一个,万位和十万位表示一个。
当然,这种越做越复杂的方式只是想想,还是别作的好。



B6层 发表时间: 12/11 09:59

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号