love_qj 发表于 2020-1-27 12:44:02

C语言自定义函数

如果在自定义函数的一个循环中,返回了一个值,循环未结束,那么循环是否继续进行?

quark 发表于 2020-1-27 13:18:26

请发下源码看下,再分析。。。。

love_qj 发表于 2020-1-27 15:09:37

quark 发表于 2020-1-27 13:18
请发下源码看下,再分析。。。。

#include"stdio.h"
#include"string.h"

#define CORRECT "I love qj!"

int cmp(char *ch_1, char *ch_2)
{
        int i = 0, j = 0;
        while(ch_2)
        {
                while(ch_1 == ch_2)
                {
                        i++;
                        j++;
                        if(!ch_1)
                        {
                                return 0;
                        }
                        else
                        {
                                return 1;
                        }
                }
                i++;
        }
        return 0;
}

int main(void)
{
        char ch;
        int n, sum = 0, i;
        printf("The most beautiful girl in the world is : ");
        gets(ch);
        n = strlen(ch);
       
        for(i = 0; i < n; i++)
        {
                sum += ch;      //将字符转换为ASC
        }
       
        int cmp(char *ch_1, char *ch_2);
       
#ifndef CORRECT
#define CORRECT "I love qj!"
#endif
   
   if(cmp(ch, CORRECT) == 1 || sum == 211)
   {
           printf("\n\t Yeah,you are a prescient man!\n\n");
   }
   else
   {
           printf("\n\t NoNoNo,you are so vulgar and impolitic!\n\n");
   }
   
   return 0;
}

love_qj 发表于 2020-1-27 15:11:00

quark 发表于 2020-1-27 13:18
请发下源码看下,再分析。。。。

这个循环我觉得写得时候没啥问题,写完了运行也没问题,可是后来自己没看懂
哈哈哈。。。

qq1242009750 发表于 2020-1-27 19:40:24

love_qj 发表于 2020-1-27 15:11
这个循环我觉得写得时候没啥问题,写完了运行也没问题,可是后来自己没看懂
哈哈哈。。。

执行了 return之后就退出函数了,所以剩下的循环都不会执行。

chxchxkkk 发表于 2020-1-28 00:12:12

return 后函数结束,

seeyou_shj 发表于 2020-1-28 05:05:15

5楼正解。
页: [1]
查看完整版本: C语言自定义函数