救命啊!在线等,数组的输出????

来源:百度知道 编辑:UC知道 时间:2024/06/07 21:10:53
看一看它的运行结果,为什么会多输出一个-1
#include <stdio.h>
#define maxsize 1024
int a[maxsize];
main()
{
int num=0,i=0;
int data;
printf("输入一组数,以-1结束:\n");
while(data!=-1)
{
scanf("%d",&data);
a[i]=data;
i++;
num++;
}
for(i=0;i<num;i++)
printf("%d\t",a[i]);
}

运行结果:输入一组数,以-1结束:
1 2 3 -1
1 2 3 -1 Press any key to continue
还有这个,看看运行结果怎么会是那样,不是123
#include <stdio.h>
#define maxsize 1024
typedef struct
{
int a[maxsize];
int length;
}sequenlist;
int create(sequenlist m);

main()
{
int num,i;
sequenlist A;
num=create(A);
for(i=0;i<num;i++)
printf("%d\t",A.a[i]);
}
int create(sequenlist m)
{
int i=0;
int data,n;
m.length=0;
printf("输入一组数,以-1结束:\n")

#include <stdio.h>
#define maxsize 1024
int a[maxsize];
main()
{
int num=0,i=0;
int data; // 注意data的初始化!!!
printf("输入一组数,以-1结束:\n");
while(data!=-1) // 未初始化的data不为-1时首次执行
{
scanf("%d",&data); // 得到输入的值
a[i]=data; // 插入到数组中
i++;
num++;
}
for(i=0;i<num;i++)
printf("%d\t",a[i]);
}

你在得到输入值后直接放入了数组,导致你的数组中最后一个是-1,可以修改如下:
#include <stdio.h>
#define maxsize 1024
int a[maxsize];
main()
{
int num=0,i=0;
int data;
printf("输入一组数,以-1结束:\n");
scanf("%d",&data); // 首先获取输入值,不为-1时进入循环
while(data!=-1)
{
a[i]=data;
i++;
num++;
scanf("%d",&data); // 在得到新的输入值后就进入while的条件判断中.
}
for(i=0;i<num;i++)
printf("%d\t",a[i]);
}

------------
PS: 首先你应该新开一贴...