首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

处女帖,刚学C语言,有些不太懂啊该如何解决

2012-02-21 
处女帖,刚学C语言,有些不太懂啊我刚开始学C语言,好多不懂啊,有下面两段代码,一段是可以对数字从小到大排序

处女帖,刚学C语言,有些不太懂啊
我刚开始学C语言,好多不懂啊,有下面两段代码,一段是可以对数字从小到大排序的,一个是输入成员的值在另一个函数输出的,大家先看看吧。
第一段:#define N 10
main()
 { int i,j,k,num[10],t;
  for( i=0;i<N;i++)
  scanf("%d",&num[i]);
  for( i=0;i<N-1;i++)
  { k=i;
  for(j=i+1;j<N;j++)
  if(num[j]<num[k])
  k=j;
  if(k!=i)
  {t=num[i];num[i]=num[k];num[k]=t;}
  }
  for(i=0;i<N;i++)
  printf("%4d",num[i]);
 }

第二段:#include"stdio.h"
typedef struct
{ char name[20];
  int num;
}student;
void stu(student *p)
{ printf("%-8s %s\n","Number","Name");
  printf("%-8d %s\n",p->num,p->name);
}
main()
{ student s;
  printf("Number:\t");scanf("%d",&s.num);
  getchar();
  printf("Name:\t");gets(s.name);
  stu(&s);
}

我的问题是,怎么把里面的num和name 关联起来,就是说可以输入num和name,然后给num排序之后,name还是跟num有对应的,并且再输出。C语言好多不懂,听说这里高手多,呵呵,以后多来学习哈

[解决办法]

C/C++ code
#include"stdio.h" 
#define N 10
typedef struct
{
char name[20];
int num;
}student;
void stu(student *p)
{
printf("%-8s %s\n","Number","Name");
printf("%-8d %s\n",p->num,p->name);
}
void main()
{
int i,j;
student s[N],t;
clrscr();
for(i=0;i <N;i++)
{
printf("Number:\t");scanf("%d",&s[i].num);
getchar();
printf("Name:\t");gets(s[i].name);
}
for(i=0;i <N-1;i++)
{
for(j=i+1;j <N;j++)
if(s[j].num <s[i].num)
{t=s[i];s[i]=s[j];s[j]=t;}
}
for(i=0;i <N;i++)
stu(&s[i]);
}

热点排行