c语言程序设计修改题实例分析

这篇文章主要讲解了“c语言程序设计修改题实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c语言程序设计修改题实例分析”吧!

在泗水等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站建设、成都网站设计 网站设计制作按需设计,公司网站建设,企业网站建设,成都品牌网站建设,网络营销推广,外贸网站建设,泗水网站建设费用合理。

1、题目描述

给定程序modi1.c中,函数fun的功能是:将十进制正整数m转换成k(2≤k≤9)进制数,并按位输出。
例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

2、原程序

#include <conio.h>

#include <stdio.h>

void fun( int m, int k )

{

  int aa[20], i;

  for( i = 0; m; i++ )

  {

/**********found**********/

    aa[i] =  m/k;

    m /= k;

  }

  for( ; i; i-- )

/**********found**********/

    printf( "%d", aa[ i ] );

}

main()

{

   int b, n;

   printf( "\nPlease enter a number and a base:\n" );

   scanf(  "%d %d", &n, &b );

   fun( n, b );

   printf("\n");

  getchar();

}

3、参考答案
本题的考核点是数制的转换
k进制数有以下特点
1.有0到k-1共k个数码。
2.逢k进1,借1当k。

k进制数某一位上的数码实际上代表该数码乘上该位上的权,如十进制数12,1实际代表1*10。原程序给出的fun函数中,第一个for循环用来将十进制的整型数据m转换为k进制数据,并将结果按从低位到高位的顺序保存在数组aa中,在for循环之后,i即为转换成的k进制数的位数,所以根据题义要求,第一处应改为"aa[i]=m%k;"或相同作用的语句。
第二个错误处为:从后往前打印存有i个数的数组中的值,其下标应该为[i-1]到[0].所以 "printf("%d",aa[i]);"应当改为"printf("%d",aa[i-1]);"。

本解析仅供参考

正确代码:

#include <conio.h>

#include <stdio.h>

void fun( int m, int k )

{

  int aa[20], i;

  for( i = 0; m; i++ )

  {

/**********found**********/

    aa[i] =  m%k;

    m /= k;

  }

  for( ; i; i-- )

/**********found**********/

    printf( "%d", aa[ i-1 ] );

}

main()

{

   int b, n;

   printf( "\nPlease enter a number and a base:\n" );

   scanf(  "%d %d", &n, &b );

   fun( n, b );

   printf("\n");

  getchar();

}

感谢各位的阅读,以上就是“c语言程序设计修改题实例分析”的内容了,经过本文的学习后,相信大家对c语言程序设计修改题实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!

当前文章:c语言程序设计修改题实例分析
标题来源:https://www.cdcxhl.com/article24/ghcije.html

成都网站建设公司_创新互联,为您提供企业网站制作定制开发网站收录定制网站品牌网站建设响应式网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作