| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 735 人关注过本帖
标题:帮忙看下这个程序的错误!
只看楼主 加入收藏
TIC
Rank: 2
等 级:论坛游民
帖 子:34
专家分:27
注 册:2009-12-26
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:7 
帮忙看下这个程序的错误!
该程序的目的是求正整数n中第k位数字(从右边算起) 例如:digit(829,1)返回9;digit(829,2)返回2;
#include<stdio.h>
int num_digits(int n)  /*判断正整数的位数*/
{
  int cnt=0;
  while(n!=0)
  {
    n=n/10;
    cnt++;
  
  }
  return cnt;
 
}
int digit(int n,int k)   /*显示所指第几位的数*/
{  
    int i,cnt,m;      
    cnt=num_digits(n);
     if(k=1)
        m=n%10;
     else if(cnt<k)
        printf("所指位数有错!");
   
   else
   {
       for(i=0;i<cnt-k+1;i++)
         
          {
             n=n/10;
           }
      
          m=n;  
    }
     
       return m;


}
int main()
{
 int n,k;
 scanf("%d %d",&n,&k);
 printf("%d\n",digit(n,k));
 
 return 0;

}
搜索更多相关主题的帖子: 正整数 return include 
2010-05-08 22:07
傲剑
Rank: 2
等 级:论坛游民
帖 子:51
专家分:28
注 册:2009-11-2
收藏
得分:5 
#include<stdio.h>
int num_digits(int n)  /*判断正整数的位数*/
{
  int cnt=0;
  while(n!=0)
  {
    n=n/10;
    cnt++;
  
  }
  return cnt;

}
int digit(int n,int k)   /*显示所指第几位的数*/
{  
    int i,cnt,m;      
    cnt=num_digits(n);
     if(k==1)  /*注意是==判断 = 是赋值*/
        m=n%10;
     else if(cnt<k)
        printf("所指位数有错!");
   
   else
   {
       for(i=0;i<k-1;i++) /*控制所求位数*/
         
          {
             n=n/10;
           }
      
          m=n%10;
    }
     
       return m;


}
int main()
{
int n,k;
scanf("%d %d",&n,&k);
printf("%d\n",digit(n,k));
getch();

return 0;

}
这样应该行了
2010-05-08 22:28
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:5 
我也写了一个,请楼主指教!
程序代码:
#include<stdio.h>
#include<stdlib.h>

int main(int argc, char* argv[])
{
    int n,m,k;

    printf("请输入一个正整数:");
    scanf("%d",&n);
    for(m=n,k=0;m!=0; )
    {
        m/=10;
        k++;
    }

    int *p;
    p=(int*)calloc(k,sizeof(int));
    m=n;

    for(int i=k-1;i>=0;i--)   
    {
        p[i]=m%10;
        m/=10;
    }
    printf("请输入要输出的数字的位置:");
    scanf("%d",&k);

    printf("%d的第%d位是%d\n",n,k,p[k-1]);//数组的下标是从0开始的,所以这里k-1

    return 0;
}



南国利剑
2010-05-08 23:17
TIC
Rank: 2
等 级:论坛游民
帖 子:34
专家分:27
注 册:2009-12-26
收藏
得分:0 
3Q!
2010-05-09 12:04
帅超
Rank: 2
等 级:论坛游民
帖 子:25
专家分:23
注 册:2009-9-12
收藏
得分:5 
怎么我照上面的编译还是有错误啊。。。
2010-05-09 12:55
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:0 
回复 5楼 帅超
你用的是什么编译器?
我在vc6.0中就能够运行啊。

南国利剑
2010-05-09 15:04
Alidesheng
Rank: 2
等 级:论坛游民
帖 子:108
专家分:21
注 册:2010-4-18
收藏
得分:5 
三楼的是对的,你再编译一下,把符号写对。
2010-05-09 16:42
guxinxiaohan
Rank: 2
等 级:论坛游民
帖 子:6
专家分:12
注 册:2010-5-11
收藏
得分:0 
本来没有错误的,但一到运行的时候就有一个错误
而且是最前面的,无奈,
2010-05-25 17:54
快速回复:帮忙看下这个程序的错误!
数据加载中...
 
   



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

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