当前位置:  开发笔记 > 编程语言 > 正文

C程序保持returnig 1

如何解决《C程序保持returnig1》经验,为你挑选了1个好方法。

我正在写这段代码:

#include 
int main()  
  {
  int t[50],n,i,test=1;
  printf("Donner la Taille N du tableau :");scanf("%d",&n);
  for(i=0;it[i+1]){test=0;break;};
      };
  return test != 0);
  }

如果数组是递增的,它应该返回1,但它总是返回1



1> Ring Ø..:
for(i=0;i

在scanf运行之前增加i ...相反

for(i=0;i

for(INIT ; COND ; INCREMENT) ACTION;

相当于

INIT;
while (COND) {
   ACTION;
   INCREMENT;
}

在你的程序中,实际操作是INCREMENT的一部分,并在之后完成i++(从左到右评估和执行逗号分隔的语句),0跳过了值,而且t[n]写入了n逻辑超出界限(因为它不是一个问题,而n<= 49).

请注意,INIT和INCREMENT是约定,因为您可以在那里做很多既不是初始化也不是增量的东西! - 就像你实际做的那样

下面是一个只使用一个循环,没有数组和更少变量的版本,后面是解释

#include 
#include 

int main(){
  int n,v,previous = INT_MIN; // INT_MIN: minimal int value
  printf("Donner N le nombre de valeurs :");
  scanf("%d",&n);

  while (n-- > 0) {
     scanf("%d", &v);
     if (v < previous) return 0;
     previous = v;
  }
  return 1;
}

说明

previous 被赋予最低可能的整数值

while (n-- > 0) 确保n最初> 0,将循环n次

读取一个值v,如果v < previous这意味着序列没有提升

直接返回1或0

邦勇气 :-)

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有