while循环练习中,遇到问题。
练习题是:
/*
练习1:提示用户输入一个正整数n,计算1-2+3-4+5-6+…+n的和 */
#include <stdio.h>
int main() { int n; printf("请输入一个正整数:\n"); scanf("%d", &n); while( n <= 0) { printf("您输入错误,请重新输入:\n"); scanf("%d", &n); } int a = 1; int sum = 0; while(a <= n) { if(a % 2 == 0) { sum = sum - a; a++; } else if(a % 2 != 0) { sum = sum + a; a++; } } printf("计算结果是:%d\n", sum); return 0; }
以上代码执行时正常的,然后尝试 使用if不同的表达方式,机会不使用else if 而直接用 连个 if函数。
如下
#include <stdio.h>
int main() { int n; printf("请输入一个正整数:\n"); scanf("%d", &n); while( n <= 0) { printf("您输入错误,请重新输入:\n"); scanf("%d", &n); } int a = 1; int sum = 0; while(a <= n) { if(a % 2 == 0) { sum = sum - a; a++; } if(a % 2 != 0) { sum = sum + a; a++; } } printf("计算结果是:%d\n", sum); return 0; }
输出的结果是不一样的 ?问题出在哪里 ?
|