c语言的问题《数组》

来源:百度知道 编辑:UC知道 时间:2024/05/11 02:25:39
以下是我的程序不知问题何处,麻烦大家看看
#nclude<stdio.h>
#define N 100
void main()
{
int n,t,i,j;
int a[N],b[N];
printf("请输入数的个数:\n");
scanf("%d",&n);
for (j=0;j<n;j++)
{
printf("请输入第%d个数:\n",j+1);
scanf("%d",&a[j]);
b[j]=a[j];
}
for (j=0;j<n-1;i++)
for (j=0;j<i;j--)
if (a[j-1]<a[j])
{
t=a[j-1];
a[j-1]=a[j];
a[j]=t;
}
for (i=0;i<n;i++)
{
for (j=0,t=1;j<n;j++)
{
if (b[j]==a[i])
break;
else
t++;
}
printf("%5d",t);
}
printf("\n");
}
第一杭为笔误,不是问题

#nclude<stdio.h>
#define N 100
void main()
{
int n,t,i,j;
int a[N],b[N];
printf("请输入数的个数:\n");
scanf("%d",&n);
for (j=0;j<n;j++)
{
printf("请输入第%d个数:\n",j+1);
scanf("%d",&a[j]);
b[j]=a[j];
}
for (j=0;j<n-1;i++) //这个嵌套循环,第一层J被赋零,第二层你的J还自减,直接变负数了.你想想,数组越界.你如果是想排序的话,好好看一下基本数据结构里的几个排序算法吧,如果你是想实现别的功能,怒我冒味,没看懂.主要就是嵌套这里的错误了,别的地方虽然结构不合理,但如果是你自己测试的话确实可以执行了.
for (j=0;j<i;j--)
if (a[j-1]<a[j])
{
t=a[j-1];
a[j-1]=a[j];
a[j]=t;
}
for (i=0;i<n;i++)
{
for (j=0,t=1;j<n;j++)
{
if (b[j]==a[i])
break;
else
t++;
}
printf("%5d",t);
}
printf("\n");
}

第一行应该是#include,你少写了i

补充:
不明白你的题目是干什么?

#include<stdio.h> //修正了你的笔误

#define N 100

void main()
{