首页 > 用户发贴区 > 编程问题提问区 > 程序不停了怎么办?
2007
12-23

程序不停了怎么办?

先看一下这段代码:当我输入数字时正常,输入字母后程序就不停地输出“it’s wrong,please input again:“。这个问题怎么办?(我是自学的,希望解答能详细点)
 for(i=0;i<10;)
 {
  scanf(“%d”,&a[i]);
  if(a[i]>=0&&a[i]<10)
  {
   i++;
   printf(“please input a number again:\n”);
  }
  else
   printf(“it’s wrong,please input again:\n”);
 }


程序不停了怎么办?》有 3 条评论

  1. 5iluo 说:

    字母不在0到10的范围,肯定会跳到else那里啊,

  2. 天煞C★★ 说:

    是的!
    你前面的i定义为整型了.所以会直接跳到else

  3. dclchj 说:

    嗯,明白了。现在已经改好了:

    #include<stdio.h>
    #include<conio.h>
    #include<ctype.h>
    void main()
    {
     int a[10],b[10],c[10],i,l=0,n=0,sum=0,d=0,e=0,t=0,*p;
     char ch;

     printf(“please input a number:\n”);
     i=0;
    do{
     scanf(“%c%*C”,&ch);
        if ( ch > ’0′ && ch <= ’9′ )
     {
      a[i] = ch – ’0′;
      printf(“please input next number :\n”);
      i++;
     }
     else{
      printf(“it’s wrong,please input again:\n”);
     }
    }while ( i <=9 );

     for(i=0;i<10;i++)
      if(a[i]%2!=0)
      {
       b[l]=a[i];
       l++;
       d++;
      }
      else
      {
       c[n]=a[i];
       n++;
       e++;
      }
      printf(“奇数是:”);
      for(l=0;l<=d;l++)
       printf(“%d\t”,b[l]);
      printf(“\n偶数是:”);
      for(n=0;n<=e;n++)
       printf(“%d\t”,c[n]);
      for(i=0;i<10;i++)
       sum=sum+a[i];
      printf(“\n和是:%d\n”,sum);
      p=&a[0];
            printf(“指针数组输出的结果:”);
      for(t=0;t<=9;t++)
       printf(“%d”,*(p+t));
      getch();
    }

留下一个回复