为什么我编程的不对?
向往天空 资深达人 2017-09-07 23:09:04
1465 1 0

#include <stdio.h>

#include <ctype.h>


void fun(char *str)

{

int i,j,n,k;

k=0;

n=0;

while(str[n])n++;

for(i=0;i<n;i++)

{

if(str[i]==' ')

{

k++;

for(j=i;j<n-k;j++)

str[j]=str[j+1];

}

}

str[j]=0;

}

main()

{

  char str[81];void NONO ();


  printf("Input a string:") ;

  gets(str);

  puts(str);

  fun(str);

  printf("*** str: %s\n",str);

  NONO();

}


void NONO ()

{

/* 请在此函数内打开文件,输入调试数据,调用 fun 函数,

   输出数据,关闭文件。 */

  char str[81];

  int n = 0;

  FILE *rf, *wf ;


  rf = fopen("in.dat","r") ;

  wf = fopen("out.dat","w") ;

  while(n < 10) {

    fgets(str, 80, rf);

    fun(str);

    fprintf(wf, "%s", str) ;

    n++ ;

  }

  fclose(rf) ;

  fclose(wf) ;

}

程序无误,结果也没有错,为什么评分就不对?

问题来自: 编程题真题

共 1 个回答

    向往天空 资深达人 3207天前

    已发现问题,连续输入大于一个空号时就出错了,在str[j]=str[j+1];后加上i--;即可

您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题