C语言 这个小程序 哪里错了呢?

#include<stdio.h>#definen5voidside_rank(int*a);intmain(void){intside[n]={0};charloop=... #include<stdio.h>
#define n 5
void side_rank(int *a);

int main(void)
{
int side[n] = { 0 };
char loop = '\0';
do
{
printf("Please enter %d num: ", n);
for (int i = 0; i < n; i++)
scanf("%d", side[i]);
side_rank(*side);
printf("Do you want to run again?(Y,YES N,NO");
scanf("%c", loop);
}
while (loop == 'Y' || loop == 'y');
}

void side_rank(int *a)
{
int i, j, k, s, z;
for (i = n - 1; i >0; i = k)
{
for (j = 0,k=0; j < i; j++)
{
if (*(a + j) > *(a + j + 1))
{
s = *(a + j);
*(a + j) = *(a + j + 1);
*(a + j + 1) = s;
k = j;
}
}
}
for (z = 0; z < n; z++)
{
printf("%5d", *(a + i));
}
}
展开
 我来答
ilvwhy
2016-11-24 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.7万
采纳率:81%
帮助的人:2822万
展开全部
#include<stdio.h>
#include <stdlib.h>
#define n 5
void side_rank(int a[]);

int main(void)
{
int side[n] = { 0 };
char loop = '\0';
do
{
int i;
printf("Please enter %d num:",5);
for(i = 0; i < n; i++)
scanf("%d", side[i]);
side_rank(side);
printf("Do you want to run again?(Y,YES  N,NO");
scanf("%c", &loop);
}
while (loop == 'Y' || loop == 'y');

}

void side_rank(int *a)
{
int i, j, k, s, z;
for (i = n - 1; i >0; i = k)
{
for (j = 0,k=0; j < i; j++)
{
if (*(a + j) > *(a + j + 1))
{
s = *(a + j);
*(a + j) = *(a + j + 1);
*(a + j + 1) = s;
k = j;
}
}
}
for (z = 0; z < n; z++)
{
printf("%5d", *(a + i));
}
}
更多追问追答
追问
能说一下为什么声明函数的时候要用a〔〕吗
追答
申明用指针也可以。你主要的错误是传入的这个函数的参数形式不对。参数名字前不需要加*号。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式