wafakf
2021-01-16 17:22
采纳率: 100%
浏览 391

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

#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条回答 默认 最新

  • 云中屋 2021-01-16 17:39
    已采纳

    两个问题:

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

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

     

    点赞 打赏 评论
  • Lj2_jOker 2021-01-16 17:29

    调用函数的时候,是不需要加函数的返回类型

    传的参数也不用加数据类型

    改成 sx(i, B, S, G, a)

    但是你的i 在sx调用前 已经是999了

    在sx里面不会进入到for里面吗

    在调用sx的前 i = 0;

    点赞 打赏 评论

相关推荐 更多相似问题