返回狼盟编程首页
编程搜索 [狼盟旧档]
论坛统计


请输入搜索关键字:
├─◆ 狼盟首页 > 查看贴子 > 详细信息

楼主

数组问题


为什么我对数组排完序后,值都为0了,字符的都输不出来了呢#include"stdlib.h"#include"stdio.h"#include"string.h"#define M 50typedef struct stu{   char name[20];   int mark;}student;int input(student *data){   int i=1;   char temp[20];   printf("You can input the information
");   printf("input the name of %d
",i);   gets(temp);   /*gets(data[i].name);*/   while(strcmp(temp,"end")!=0)   {      strcpy(data[i].name,temp);      printf("input the mark
");      scanf("%d",&data[i].mark);      i++;      if(i>M) printf("the data is full");      printf("input the name of %d
",i);      getchar();      gets(temp);      }   return i-1;}void straight(student *data){  int i,j;  for(i=2;i<=M;i++)  {    data[0].mark=data[i].mark;    j=i-1;    while(data[0].mark<data[j].mark)    {       data[j+1].mark=data[j].mark;       j--;    }    data[j+1].mark=data[0].mark;    strcpy(data[j+1].name,data[0].name);   }}void bubblesort(student *data){   int i,j;   for(i=1;i<M;i++)     for(j=1;j<=M-i;j++)       if(data[j+1].mark<data[j].mark)       {          data[0]=data[j];          data[j]=data[j+1];          data[j+1]=data[0];       }}void print(student *data,int n){  int i;  for(i=1;i<=n;i++)  {    puts(data[i].name);    printf("%d 
",data[i].mark);  }}main(){  student data[M]={0};  int count;  clrscr();  count=input(data);/*输入学生信息*/  printf("count is %d
",count);  print(data,count);  if(count!=0)   {     printf("Straight:
");     straight(data);     print(data,count);  }   if(count!=0)   {      printf("Bubblesort:
");     bubblesort(data);     print(data,count);  }  if(count==0)     printf("No data!"); }





shenshuibomb [ 1 楼 ]
2006-06-01 13:42:00
没人来,我自己搞定了