为什么我C语言的自定义函数被直接跳过不执行了?

源码码头网 论文问答 1
#include<stdio.h>
void sx(int i,int B,int S,int G,int a[])
{  
for(i=0;i<999;i++){
        B=a[i]/100;
        S=a[i]/10%10;
        G=a[i]%10;
        if(a[i]==(B*B*B+S*S*S+G*G*G)&&B!=0){
            printf("三位数的水仙花数是: %d \n",a[i] );

        }
    }
}
int main()
{
    int i=0,n=1,B,S,G;
    int a[999]={0};
    for(i=0;i<999;i++){
        a[i]=n;
        n++;
    }
    void sx(int i,int B,int S,int G,int a[]);

    return 0;

}

回复

共2条回复 我来回复
  • 毕业设计工坊
    这个人很懒,什么都没有留下~
    评论

    两个问题:

    1、2处的写法根本不是调用函数,纯粹就是个函数声明。

    2、执行完1处的for循环后,i的值已经是999了。

    0条评论
  • 毕设向导
    这个人很懒,什么都没有留下~
    评论

    调用函数的时候,是不需要加函数的返回类型。传的参数也不用加数据类型,改成 sx(i, B, S, G, a),但是你的i 在sx调用前已经是999了,在sx里面不会进入到for里面吗?在调用sx的前 i = 0;

    0条评论

发表回复

登录后才能评论