2014-09-20 64 views
-4

我对编程非常陌生,目前正在开发一个程序(它几乎没有接近完成的地方),但我无法弄清楚它是如何以及为什么不起作用的。我必须缺少的“如果”和“其他”循环的C程序问题

#include <stdio.h> 

int main(void) 
{ 
    printf("Welcome to the ROBOT GAME!\n" 
      "Please enter the column of your starting point. Keep numbers in the range of one to three.\n"); 

    int a, b; 
    if(1<=a<=3); 
    { 
     scanf("%i", &a); 
    } 
    else 
     { 
     printf("Sorry try again."); 
     } 

    printf("Please enter the row of your starting point. Keep numbers in the range of one to three.\n"); 
    if(1>=b<=3); 
     scanf("%i", &b); 
    printf("What is your next move? Pick\n" 
      "1.Right\n" 
      "2.Left\n" 
      "3.Up\n" 
      "4.Down\n"); 

} 
+3

请阅读一个基本的C教程。 – 2014-09-20 05:05:14

+1

'C程序问题与循环'哪里是循环? [需要学习关于'C'的基本知识](http://www.tutorialspoint.com/ansi_c/c_introduction.htm) – 2014-09-20 05:06:45

+0

在'if(<= 2 = 3)之后移除';'' – Rustam 2014-09-20 05:21:49

回答

0

很多问题,这里的东西。首先,这并不意味着你认为它的意思是:

1<=a<=3 

相反,你需要

1 <=a && a <= 3 

此外,不按if语句都以分号:

if(1<=a<=3); 
     ^

最重要的是,您需要在之前执行您的scanf()您检查该值是否有效。

0

而不是if(1<=a<=3);if(a>= 1 && a <= 3) 同为if(1>=b<=3);if(b>=1 && b<=3)

和别无分号。只需检查该编程语言中的其他语法。它是非常基本的知道。

0

这不是如何测量编程范围。如果您要测量

您必须使用AND运算符。

if(a>=1 && a<=3) { 

} 

但这不会在这里工作。没有分配ab。您必须为a和b分配一些值。首先阅读一些基本教程,如何在C中工作ifloop。然后它会很容易。 :)

1

首先错误

int a, b; 
if(1<=a<=3); 

你怎么能检查aif条件甚至是未初始化?首先通过初始化值ab(与1)对其进行修复,然后去解决第二个错误

第二个错误

if(1<=a<=3); 

;if条件删除,然后去修复三虫

第三个错误

if(1<=a<=3); 

是不是想做你想做的。应该

if(a>= 1 && a <= 3) 

现在同样适用于if(1>=b<=3);按照每个上面的步骤解决这个问题。

四错误

你有int main(void)。所以需要return 0结尾的main

1

另外定义变量但不声明它们是一个坏习惯。

int a, b; 

不分配任何值到他们,你不能确定他们将包含什么。更好的是

int a = 1; 
int b = 1;