| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 403 人关注过本帖
标题:大家帮我省一道题目吧。 这道C语言题目我是怎么也读不懂
只看楼主 加入收藏
方一鸣
Rank: 2
等 级:论坛游民
帖 子:74
专家分:13
注 册:2011-8-31
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
大家帮我省一道题目吧。 这道C语言题目我是怎么也读不懂
2.程序修改题
给定程序中,函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。
例如,若输入:77777,则输出将是:19607。
请改正程序中的错误,使其能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include  <stdio.h>
int fun(char *p)
{
  int n;
/**********found**********/
  n=*P-'o';
  p++;
  while( *p!=0 )
  {
/**********found**********/
    n=n*7+*P-'o';
    p++;
  }
  return  n;
}
main()
{
  char s[6];
  int I; intn;
  printf("Enter a string(Ocatal
         digits):");
  gets(s);
  if(strlen(s)>5)
  {
    printf("Error: String too longer!\n");
    exit(0);
  }
  for(i=0; s[i]; i++)
    if(s[i]<'0'||s[i]>'7')
    { printf("Error:%c not is ocatal  
               digits!\n",s[i]);
      exit(0); }
  printf("The original string:  ");
  puts(s);
  n=fun(s);
  printf("\n%s is convered to integer
          number: %d\n",s,n);
}



如果说是把77777的八进制转十进制的话应该是3W多呀  , 读不懂神马意思  所以无从做起
搜索更多相关主题的帖子: C语言 
2011-09-10 19:34
潇湘741
Rank: 2
等 级:论坛游民
帖 子:13
专家分:20
注 册:2011-9-4
收藏
得分:2 
LZ  你确定??
2011-09-10 21:55
zhuouke
Rank: 2
来 自:陕西宝鸡
等 级:论坛游民
帖 子:22
专家分:15
注 册:2011-9-10
收藏
得分:2 
本人...新手,不好意思真不懂......
2011-09-11 01:49
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:2 
你的程序错误很多,修改后的程序如下
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int fun(char *p)
{
  int n;
  n=*p-'0';//这里是字符0
  p++;
  while( *p!='\0')//这是是ASCII码0,是字符串结尾标志
  {
    n=n*8+*p-'0';//8进制
    p++;
  }
  return  n;
}
main()
{
  char s[6];
  int i;
  int n;
  printf("Enter a string(Ocatal digits):");
  gets(s);
  if(strlen(s)>5)//最大5位,你不能输入777777
  {
    printf("Error: String too longer!\n");
    exit(0);
  }
  for(i=0; s[i]; i++)
    if(s[i]<'0'||s[i]>'7')
    {
    printf("Error:%c not is ocatal digits!\n",s[i]);
    exit(0);
    }
  printf("The original string:  ");
  puts(s);
  n=fun(s);
  printf("\n%s is convered to integer number: %d\n",s,n);
}
运行结果:
The original string:  12
12 is convered to integer number: 10
The original string:  25
25 is convered to integer number: 21
The original string:  12345
12345 is convered to integer number: 5349 is convered to integer number: 21



[ 本帖最后由 pauljames 于 2011-9-11 07:20 编辑 ]

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2011-09-11 06:51
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:2 
回复 楼主 方一鸣
n=*P-'o';   int I; intn;

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-11 07:03
编程的乐趣
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:229
专家分:1027
注 册:2011-4-4
收藏
得分:2 
恩呵呵
2011-09-11 11:52
快速回复:大家帮我省一道题目吧。 这道C语言题目我是怎么也读不懂
数据加载中...
 
   



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

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