c语言编程中的问题改错

#include<stdio.h>voidfun(int*a,int*n){inti,j=0;for(i=1;i<=1000;i++){/**************fo... #include <stdio.h>
void fun(int *a, int *n)
{
int i, j = 0 ;

for(i = 1 ; i <= 1000 ; i++) {
/**************found**************/
if(((i % 7 == 0) || (i % 11 == 0)) && i % 77 != 0) a[j++] =i;
}
/**************found**************/
*n =j++;
}

main()
{ int aa[1000], n, k ;

/**************found**************/
fun (int *aa,int *n ) ;
for ( k = 0 ; k < n ; k++ )
if((k + 1) % 10 == 0) printf("\n") ;
else printf("%5d", aa[k]) ;
}
展开
 我来答
wenquanzym
2010-05-13 · TA获得超过227个赞
知道答主
回答量:408
采纳率:0%
帮助的人:177万
展开全部
/**************found**************/
if(((i % 7 == 0) || (i % 11 == 0)) && i % 77 != 0) a[j++] =i;
}
反弧号是多的
/**************found**************/
*n =j++;
}
反弧号后面要有个分号
fun (int *aa,int *n ) ;
只是调用函数
对应参数应为
fun (aa,&n );
说明,传递数组只需给出数组名,因为数组名即为该数组的首地址
for ( k = 0 ; k < n ; k++ )
n没有给初始值,这是错误的,且n只能是小于1000的正整数,否则循环N次后会超出数组给定个数范围
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友35e80f595
2010-05-13 · TA获得超过116个赞
知道小有建树答主
回答量:79
采纳率:0%
帮助的人:70.7万
展开全部
改了一下 大概就是这样吧:
#include <stdio.h>
void fun(int *a, int *n)
{
int i, j = 0 ;

for(i = 1 ; i <=1000 ; i++)
{
if(((i % 7 == 0) || (i % 11 == 0)) && i % 77 != 0) a[j++] =i;
}
*n =j;//这里不要j++了因为你循环最后跳出的时候j已经加了一次
}

main()
{ int aa[1000], n, k ;

/**************found**************/
fun (aa,&n ) ; //你的这里错了 不是int*aa 和int n
for ( k = 0 ; k <n ; k++ )
{
//这个for循环你少了个{}号
if((k + 1) % 10 == 0) printf("\n");
else printf("%5d", aa[k]);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式