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

关于 用函数的返还值 做 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 10:51
    关注

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

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

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测