一道简单人C语言题出现了错误

来源:百度知道 编辑:UC知道 时间:2024/07/03 04:50:54
求小于10000且能被7和11整除的数
#include <conio.h>
#include <stdio.h>
#define M 10000
void fun ( int m, int *a, int *n )
{
int i,j=0;
*n=0;
for (i=0;i<=m;i++)
if (i%7==0||i%11==0);
{a[j]=i;
j++;
}
*n=j;
}

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

fun ( 50, aa, &n );
for ( k = 0; k < n; k++ )
{if((k+1)%20==0)
printf("\n");
else
printf("%4d", aa[k]);
printf("\n");
}
int cf;
scanf("%d",&cf);
}

问题是我在最后加入了一个无关语句:
int cf;
scanf("%d",&cf);
就出现了错误:
c:\wexam\24010001\新建文本文档.c(28) : error C2143: syntax error : missing ';' before 'type'
c:\wexam\24010001\新建文本文档.c(29) : error C2065: 'cf' : undeclared identifier
执行 cl.exe 时出错.
请高手指教!

声明部分要在执行部分前面.你的int cf属于声明部分,你把int cf放在主函数声明部分就对了..
如果想避免TC环境下运行结果转瞬即失,可以加getch(); 在<conio.h> 头文件里.

求小于10000且能被7和11整除的数:
#include <conio.h>
#include <stdio.h>
#define M 10000
void fun ( int *a, int *n )
{
int i,j=0;
*n=0;
for (i=0;i<=M;i++)
if (i%7==0&&i%11==0)
{a[j]=i;
j++;
}
*n=j;
}
main()
{
int aa[M], n, k;
fun ( aa, &n );
for ( k = 0; k < n; k++ )
{
if((k+1)%20==0)
printf("\n");
else
printf("%4d", aa[k]);
printf("\n");
}
}
也不知道你要的是不是这样的,好像有点答非所问哦!