C语言书上有一题编译没错,但执行不出来,高手指教!

2024-12-18 20:11:18
推荐回答(3个)
回答1:

#include
int main(void)
{
  void fun1(int a[],int n);
  void fun2(int a[],int n);
  char x;
  int a[10];
  int i;
  printf("Enter 10 integers:");
  for(i=0;i<10;i++)
  {
    scanf("%d",&a[i]);
  }
  fflush(stdin);  // 清空缓存
  printf("Enter 'A' or 'D':");
  scanf("%c",&x);
  if(x=='A')    // “==” 这样才是判断条件, 下同
  {
    fun1(a,10);
    for(i=0;i<10;i++)
    {
      printf("%d\t",a[i]);
    }
  }
  else if(x=='D')
  {
    fun2(a,10);
    for(i=0;i<10;i++)
    {
      printf("%d\t",a[i]);
    }
  }
  else 
  {
    printf("Wrong operator\n");
  }
  return 0;
}
void fun1(int a[],int n)
{
  int k,index,temp,i;
  for(k=0;k  {
    index=k;
    for(i=k+1;i    {
      if(a[i]      {
        index=i;
      }
    }
    temp=a[index];
    a[index]=a[k];
    a[k]=temp;
  }
}
void fun2(int a[],int n)
{
  int k,index,temp,i;
  for(k=0;k  {
    index=k;
    for(i=k+1;i    {
      if(a[i]>a[index])
      {
        index=i;
      }
    }
    temp=a[index];
    a[index]=a[k];
    a[k]=temp;
  }
}

回答2:

else if(x='D')//这一句你写成了赋值了 改为 else if (x=='D') 就行了

回答3:

if(x='A')

---------》》

if(x=='A')
d同理