啊哈磊_编程从这里起步

标题: 输入一个数如果是奇数就输出前三个数,如果是偶数,输出后3个数精准问题 [打印本页]

作者: 我要学C语言    时间: 2012-12-14 20:05
标题: 输入一个数如果是奇数就输出前三个数,如果是偶数,输出后3个数精准问题


为什么  多出了  89和32 两个数  有解决的办法么?
这个是代码:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
    scanf("%d",&a);
    if (a%2==1)
    printf("%d",a+1);
    printf("%d",a+2);
    printf("%d",a+3);
if (a%2==0)
    printf("%d",a-1);
    printf("%d",a-2);
    printf("%d",a-3);
sleep(5000);
return 0;
}
作者: 啊哈磊    时间: 2012-12-14 20:05
if语句中 不止包含一个语句,因此要加括号。
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a;
    scanf("%d",&a);
    if (a%2==1)
    {
    printf("%d",a+1);
    printf("%d",a+2);
    printf("%d",a+3);
    }
    if (a%2==0)
    {
    printf("%d",a-1);
    printf("%d",a-2);
    printf("%d",a-3);
   }
    sleep(5000);
    return 0;
}
作者: 我要学C语言    时间: 2012-12-14 20:05
先占个位置在说;
作者: 我要学习C语言    时间: 2012-12-18 14:48
啊哈磊 发表于 2012-12-15 11:01
if语句中 不止包含一个语句,因此要加括号。
#include
#include

谢谢啦
作者: pumbaa    时间: 2013-1-2 21:09
看来你没理解分号的作用,分号代表一个语句完成了!所以你的if后面接个printf就表示if只管理一个printf,但是程序要顺序执行,所以除了判断a为偶数的那个if后面的printf没执行,都执行了!你应该把if的作用域用大括号括起来!代码如下!
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
    scanf("%d",&a);
    if (a%2==1)
    {
    printf("%d",a+1);
    printf("%d",a+2);
    printf("%d",a+3);
    }
if (a%2==0)
    {
    printf("%d",a-1);
    printf("%d",a-2);
    printf("%d",a-3);
    }
sleep(5000);
return 0;
}
作者: aodi69    时间: 2013-1-8 21:04
额。我学习啦 。我也没明白。
作者: 风微笑    时间: 2013-3-1 23:55
int main()
{int a;
    scanf("%d",&a);
    if (a%2==1)
{
    printf("%d  ",a+1);
    printf("%d  ",a+2);
    printf("%d  ",a+3);
}
if (a%2==0)
{
    printf("%d  ",a-1);
    printf("%d  ",a-2);
    printf("%d  ",a-3);
}
sleep(5000);
return 0;
}




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2