毅637
2021-07-12 08:21
采纳率: 100%
浏览 17

c程序设计错误代码判断

1.字符串在文档处理、基因序列等方面应用广泛。下列给定程序中,函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。程序有二个错误,写出错行号、原因、和正确代码。
1 #include <stdio.h>
2 void fun(char *s)
3 {
4 int i, j;
5 for (i=0, j=0; s[i]!='\0'; i++)
6 if (s[i]>='0' && s[i]<='9')
7 s[j] = s[i];
8 s[j] = "\0";
9 }
10 int main()
11 {
12 char item[80];
13 printf("\nEnter a string :");
14 gets(item);
15 printf("\n\nThe string is : %s\n", item);
16 fun(item);
17 printf("\n\nThe string of changing is : %s\n", item);
18 return 0;
19 }
2.排序算法在很多领域得到相当的重视,尤其是在大量数据的处理方面。下列给定程序是使用指针完成冒泡法排序的程序,其中有二个错误,找出其中的错误行和出错原因,写出正确代码。
1 #include <stdio.h>
2 int main()
3 { int a[10]={21,43,55,12,65,87,25,93,30,62};
4 int i,k,pa;
5 for (k=0;k<10;k++)
6 printf("%3d",a[k]);
7 printf("\n\n");
8 for (k=0;k<9;k++)
9 { pa=a;
10 for (i=0;i<10-k-1;i++)
11 { if ( *pa>
(pa+1) )
12 { temp=*pa; pa=(pa+1); *(pa+1)=temp;
13 }
14 pa++;
15 }
16 }
17 for (k=0;k<10;k++)
18 printf("%3d",*pa++);
19 printf("\n\n");
20 return 0;
21 }

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • qfl_sdu 2021-07-12 08:52
    已采纳

    题目1:

    void fun(char *s)
    {
        int i, j;
        for (i=0, j=0; s[i]!='\0'; i++)
            if (s[i]>='0' && s[i]<='9')//错误1,修改为  !(s[i]>='0' && s[i]<='9')原来的条件是判断字符是数字字符,加上取反后才是去掉数字字符
                s[j] = s[i];  //错误2:修改为s[j++]=s[i],赋值后,下标需要后移一位
        s[j] = "\0";
    }
    

    题目2:

    #include <stdio.h>
    int main()
    { 
        int a[10]={21,43,55,12,65,87,25,93,30,62};
        int i,k,*pa;
        int temp;  //在这里添加temp的声明(错误1的修改方法)
        for (k=0;k<10;k++)
            printf("%3d",a[k]);
        printf("\n\n");
        for (k=0;k<9;k++)
        { 
            pa=a;
            for (i=0;i<10-k-1;i++)
            { 
                if ( *pa>*(pa+1) )
                { 
                    temp=*pa; *pa=*(pa+1); *(pa+1)=temp;//错误1,没有对temp的声明,需要在开头添加int temp;
                }
                pa++;
            }
        }
        pa = a; //错误2:需要把pa重新指向数组的首地址,需要添加这一句
        for (k=0;k<10;k++)
            printf("%3d",*pa++);
        printf("\n\n");
        return 0;
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题