坚持可持续 2018-03-20 02:44 采纳率: 0%
浏览 879
已采纳

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

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

 #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 2018-03-20 02:51
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部