主题:输入待排序数记录问题,很容易,看看问题在哪里!
#include<stdio.h>
#define MAXSIZE 10
typedef int KeyType;
typedef struct
{
KeyType key;
}RecType;
typedef struct
{
RecType r[MAXSIZE];
int length;
}Sortlist;
main()
{
Sortlist S;
int x,i=1;
S.length=0;
printf("please input numbers(int),space out by 'space',exit for '0':\n");
scanf("%d",&x);
while(x!=0&&i<=MAXSIZE)
{
S.r[i].key=x;
S.length++;
i++;
scanf("%d",&x);
}
printf("\n");
printf("---------------------------\n");
printf("1--Direct Sort\n");
printf("2--Simple Change Sort\n");
printf("3--Quick Sort\n");
printf("4--Choose Sort\n");
printf("5--Stack Sort\n");
printf("6--Two Path Sort\n");
printf("---------------------------\n");
printf("\n");
printf("The numbers are:");
for(i=1;i<=S.length;i++)
{
printf("%4d",S.r[i].key);
}
printf("\n");
printf("length=%d",S.length);
printf("\n");
getch();
}
这是我准备写个综合排序实验前赋值的一段程序,问题严重,不知道怎么搞的,输入9个一下的数,检测打印出来是对的,输入9个以上的数就有问题了,我的表长是10,就是限制在10个数以内,可是输入过头以后,前面的数据都出问题了,有时间帮忙运行看看,问题在什么地方,我感觉理论上应该没有什么问题的!
#define MAXSIZE 10
typedef int KeyType;
typedef struct
{
KeyType key;
}RecType;
typedef struct
{
RecType r[MAXSIZE];
int length;
}Sortlist;
main()
{
Sortlist S;
int x,i=1;
S.length=0;
printf("please input numbers(int),space out by 'space',exit for '0':\n");
scanf("%d",&x);
while(x!=0&&i<=MAXSIZE)
{
S.r[i].key=x;
S.length++;
i++;
scanf("%d",&x);
}
printf("\n");
printf("---------------------------\n");
printf("1--Direct Sort\n");
printf("2--Simple Change Sort\n");
printf("3--Quick Sort\n");
printf("4--Choose Sort\n");
printf("5--Stack Sort\n");
printf("6--Two Path Sort\n");
printf("---------------------------\n");
printf("\n");
printf("The numbers are:");
for(i=1;i<=S.length;i++)
{
printf("%4d",S.r[i].key);
}
printf("\n");
printf("length=%d",S.length);
printf("\n");
getch();
}
这是我准备写个综合排序实验前赋值的一段程序,问题严重,不知道怎么搞的,输入9个一下的数,检测打印出来是对的,输入9个以上的数就有问题了,我的表长是10,就是限制在10个数以内,可是输入过头以后,前面的数据都出问题了,有时间帮忙运行看看,问题在什么地方,我感觉理论上应该没有什么问题的!