#include <stdio.h>
void main()
{ int i,j,num,a[num];
int change,t;
printf("Enter Number: ");
scanf("%d",&num);
printf("Enter Data: \n");
for(i=0;i<num;i++)
scanf("%d",&a[i]);
for(i=num-1,change=1;i>0 && change;i--)
{ change=0;
for(j=0;j<=i;j++)
if(a[j]>a[j+1])
{
t=a[j]; a[j]=a[j+1];
a[j+1]=t; change=1;
}
}
printf("Sorted data:\n");
for(i=0;i<num;i++)
printf("%d ",a[i]);
printf("\n");
}
这个程序哪里出错了求解!!
#include "stdafx.h"
#include <stdio.h>
#define N 10 //数组长度固定
void main()
{
int i, j, num, a[N];//
int change, t;
printf("Enter Number: ");
scanf("%d", &num);
printf("Enter Data: \n");
for (i = 0; i<num; i++)
scanf("%d", &a[i]);
for (i = num - 2, change = 1; i>0 && change; i--)//num-1
{
change = 0;
for (j = 0; j <= i; j++)
if (a[j]>a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
change = 1;
}
}
printf("Sorted data:\n");
for (i = 0; i<num; i++)
printf("%d ", a[i]);
printf("\n");
}追问
j+1<num-1
#include <stdio.h>
#define N 10 //数组长度固定
void main()
{
int i, j, num, a[N];//
int change, t;
printf("Enter Number: ");
scanf("%d", &num);
printf("Enter Data: \n");
for (i = 0; i<num; i++)
scanf("%d", &a[i]);
for (i = num - 2, change = 1; i>0 && change; i--)//num-1
{
change = 0;
for (j = 0; j <= i; j++)
if (a[j]>a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
change = 1;
}
}
printf("Sorted data:\n");
for (i = 0; i<num; i++)
printf("%d ", a[i]);
printf("\n");
}追问
为什么第十三行是num-2呢
追答 (a[j]>a[j + 1])->j+1<num-1
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-11-22
a[num];
数组不允许元素为变量。本回答被网友采纳
数组不允许元素为变量。本回答被网友采纳
第2个回答 2014-11-22
int i,j,num;
int change,t;
printf("Enter Number: ");
scanf("%d",&num);
int *a=new int[num];
前面几句改一下试试
int change,t;
printf("Enter Number: ");
scanf("%d",&num);
int *a=new int[num];
前面几句改一下试试