请高手帮忙做下这两道程序调试题,答案正确且清晰的话最多追加100分! 调试要求:下列各程序有3处错误,请按题中的功能要求,在不改变程序结构(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。 第一题: 功能说明:以下程序计算并输出等差数列的累加和,数列的首项为a0,公差为d,项数为n。 如输入:-3 5 4 则输出:sumx=18 例示说明:-3为首项,5为公差,4为项数,前4项之和为18 原程序: #include <stdio.h> int sumx( int a0, d, n ) { int i, k, s=0; k = a0; for ( i=0; i<n; i++ ) s += k; k += d; return s; } main() { int a0, d, n; scanf( "%d%d%d", &a0, &d, &n ); printf( "sumx=%d\n", sumx(a0,d,n) ); getch(); } 第二题 功能说明:以下函数length返回字符串中字母A到字母Z所包含字符的长度。主程序输入一行字符串,调用length函数输出该字符串中大写字母A到Z的子串长度。 如输入:Z2009-AShanghaiZ 则输出:Length=8 例示说明:从A到Z的子串为Shanghai,其长度为8 原程序: #include <stdio.h> int length( char *p ) { char *q, *r; for ( q=p; *q!='\0' || *q!='A'; q++ ) ; for ( r=q; *r!='\0' && *r!='Z'; r++ ) ; return r-q; } main() { char str[81]; int n; gets( str[0] ); n = length( str ); printf( "Length=%c\n", n ); getch(); }
最新回答
白裙红衣
2024-11-24 03:33:12
第一题
int sumx( int a0, int d,int n ) {/*参数要指明类型*/ int i, k, s=0; k = a0; for ( i=0; i<n; i++ ) {s += k; /*加上左大括号*/ s += i*d;}/*改正算术错误,并加上右大括号*/ return s; } main() { int a0, d, n; scanf( "%d %d %d", &a0, &d, &n );/*scanf的%d格式,%d之间必须有空格*/ printf( "sumx=%d\n", sumx(a0,d,n) ); getch(); }
第二题:
#include <stdio.h> int length( char *p ) { char *q, *r; for ( q=p; *q!='\0' && *q!='A'; q++ )/*不是或,是与*/ ; for ( r=q; *r!='\0' && *r!='Z'; r++ ) ; return r-q-1; /*要再减1*/ } main() { char str[81]; int n; gets( str); /*gets的参数应该是字符指针而不是字符*/ n = length( str ); printf( "Length=%d\n", n );/*n是整数应该用%d输出*/ getch(); }
冬瑾凉桉
2024-11-24 04:20:53
第一个改后是 #include <stdio.h> int sumx( int a0,int d,int n ) {/*d ,n 前应该加数据类型*/ int i, k, s=0; k = a0; for ( i=0; i<n; i++ )/*循环的是下面的s += k;k += d; ,应该加大括弧括起来*/
{ s += k; k += d; } return s; } main() { int a0, d, n; scanf( "%d%d%d", &a0, &d, &n ); printf( "sumx=%d\n", sumx(a0,d,n) ); getch(); }
紫珺婳浅
2024-11-24 06:44:00
#include <stdio.h> int sumx( int a0,int d, int n ) { int i, k, s=0; k = a0; for ( i=0; i<n; i++ ) {s += k; k += d;} return s; } main() { int a0, d, n; scanf( "%d%d%d", &a0, &d, &n ); printf( "sumx=%d\n", sumx(a0,d,n) ); //getch(); }
危險人物
2024-11-24 04:27:29
1
int sumx( int a0, int d,int n ) int i, k, s=0; k = a; for ( i=0; i<n; i++ )