weixin_40182907
坚持可持续
采纳率38.5%
2018-03-20 10:44

关于 用函数的返还值 做 if判断条件的问题

5
已采纳

先上代码,有些不重要,直接拉下去看问题

 #define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 10
#define namesize 15

typedef struct Seq
{  int  number[MAXSIZE];
  char name[MAXSIZE][namesize];
   char address[MAXSIZE][namesize];
   int top; 


}SeqStack;


_int judge (SeqStack *seq)
{   if( seq->top>  MAXSIZE-1 )
        {  //printf("full"); return 1;
        }
    else 
    return -1;  
}


SeqStack input(SeqStack *seq )
{ 

    while(1)
    {
**  _   if( judge (seq ) )_**
        {  printf("此判断成立");   return *seq;  }
        seq->top++;  
        scanf("%d,%s,%s",seq->number[seq->top],seq->name[seq->top],seq->address[seq->top] );
        if(seq->number[seq->top]==-2)
        {  seq->top--;
           return *seq;
        }


    }

}_

int main (void)
{   struct Seq work;

    work.top=-1;
     printf(" if you want to over input,input -1 \n");
    input( &work );



}

图片说明

重点只要看我截图的部分俩个区域看书就行了

judge 是判断 栈满,input是输入函数
初始的 top是-1

if( judge (seq ) )条件一开始就成立了?!?!
但是我输入 printf(“%d”,judge (seq )显示结果是-1,并且就应该是-1

解决方法有,但我想知道为什么。。。用的vs2010

感觉是vs的问题?关于if的或者。。。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • pxh10264530 pxh10264530 3年前

    查看条件判断,“-1”为真,

    点赞 1 评论 复制链接分享
  • nwpu_bright nwpu_bright 3年前

    c中if的判断,数值型,只有0时才是假,非0都是真

    点赞 1 评论 复制链接分享
  • os2017 os2017 3年前

    c中的if判断没有写明,默认是数值,0为真,否则为假

    点赞 评论 复制链接分享

相关推荐