回 帖 发 新 帖 刷新版面

主题:学生求解初级问题

#include <stdio.h>
int main(void){
  char SM[9]={'A','D','B','H','G','K','M','N','O'};
  int NR[9]={25,35,86,21,20,18,28,35,22};
  printf("姓名  年龄\n");
  int i,j,k,y,g;
  int result=-1;
  char x;
  for(i=0;i<9;i++){
  k=i;
  for(j=i+1;j<5;j++){
  if(SM[j]<SM[k]) k=j;
  }
  y=SM[i];
  g=NR[i];
  SM[i]=SM[k];
  NR[i]=NR[k];
  SM[k]=y;
  NR[k]=g;
  }
  for(i=0;i<9;i++){
  printf("%c",SM[i]);
  printf(" ");
  printf(" %3d",NR[i]);
  printf("\n");
  }
  i=0;j=8;
  printf("二分法 姓名输入:  ");
  scanf("%c",&x);
  while(result==-1){
  k=(i+j)/2;
  if(SM[k]==x)result=k;
  else if(SM[k]>x)
  j=k-1;
  else
  i=k+1;
  }
printf("%c人是%d岁。\n",x,NR[k]);
getchar();getchar();
return(0);
}

上面的是输入姓名显示年龄的   

可以帮我改成输入年龄查姓名的吗?  
我知道把 SM 和 NR 的位置换一下
但是还是显示不出来, 请求帮助。

问题2
配列 double a[7]={1.0,1.5,2.0,2.5,3.0,3.5,4.0}
用Pointer 变数 表示  

回复列表 (共1个回复)

沙发

你这写的,我勒个去,习惯不好呀

我来回复

您尚未登录,请登录后再回复。点此登录或注册