| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 473 人关注过本帖
标题:请教
只看楼主 加入收藏
sandao
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-10-20
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
请教
我想编写一个输出数字的程序:
1。输入一个数字N,该数字决定输出的位数:比如说5 则输出五位数字
2。N位数字各不相同,取值为 0-9
3。加入第一位数字是 0,则把0与各位数字调换。
4。将数字输出到一个TXT记事本当中。
呜呜呜,拜求高手指点。最好是源码了
2009-10-20 20:58
Aion
Rank: 2
等 级:论坛游民
帖 子:19
专家分:52
注 册:2009-10-10
收藏
得分:4 
没看懂第三个

Admin

专门做题
2009-10-20 21:47
jcslt
Rank: 8Rank: 8
来 自:90-xx.com
等 级:蝙蝠侠
帖 子:251
专家分:975
注 册:2009-10-10
收藏
得分:4 
什么东西呵,没懂

www.
2009-10-21 14:08
bing1201
Rank: 2
等 级:论坛游民
帖 子:37
专家分:24
注 册:2009-10-8
收藏
得分:4 
是看不明白?怎么调换说清楚啊?
2009-10-21 15:08
x5241329x
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:32
注 册:2009-10-21
收藏
得分:4 
错别字太多,但是我还是理解了,貌似是说“如果第一位数字是0的话就和你输入数字的最后一个数交换”比如:你输入012就要变为210是这个意思把。这个应该不难。可以实现的:
给个字符串,然后比较让数字不同,在就是你的特殊要求0另外给个判断句,大概框架差不多就出来了。
我现在搞VC没时间给代码就省了把。
2009-10-21 15:08
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:4 
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
    int n,i,w,j,s=0,a[5];
    int flag=0;              /*退出标识变量,*/
    FILE *p;
    printf("shu ru n jue ding shu chu de wei shu ");
    scanf("%d",&n);
    while(flag==0)
    {
        for(i=0;i<n;i++)
         {
             a[i]=rand()%10;          /*用随机数长生一个数*/??
             for(j=0;j<i;j++)
              {                         /* 判断产生的随机数与前面的数是否相同,相同则再次随机生成一个数,直到不相同*/
                  while(a[i]==a[j])
                   {  a[i]=rand()%10;
                         j--;
                     }
 
              }
          }
 
           if(a[0]!=0)                      /*a[0]不为0则退出循环*/
            flag=1;
           else if(a[0]==0&&a[n-1]!=0)        /*若a[0]为0,最后一位不为0,则交换,否则继续循环 */
             {
                  w=a[0];a[0]=a[n-1];a[n-1]=w;
                  flag=1;
              }
    }
       for(i=0;i<n;i++)
        {  printf("%d ",a[i]);
         s+=a[i]*pow(10,n-i-1);}
          printf("%d",s);
       if((p=fopen("c:\\asd.tet","w+"))==NULL)
          {
              printf("打开失败");
                getch();
                exit(0);
            }
         fwrite(a,sizeof(a),1,p);
         fclose(p);
    getch();
}
这个程序还有点问题,长整形最大为65535,若输入的n的值为5,最后输出的结果有可能出错(大于65535)。在产生随机数的时候我没让他循环每次打开运行的时候都是产生相同的随机数,我在WIN-TC下编的,不能用randomize(),不知道该用什么!在TC下应该可以,这个方法可以看看。
还有一种方法可以直接随机产生一个n位数,那样就不会错了,在判断是否有相同的数,第一位是否为0.。。后面差不多。

离恨恰如春草,更行更远还生。
2009-10-21 16:52
快速回复:请教
数据加载中...
 
   



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

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