java初级编程问题

‎从键盘输入一个正整数n(如果输入数据不符合要求,提醒用户重新输入,直到满足要求为止),求解1-n之间所有奇数的和。请使用循环语句实现

本题属于java比较基础的编程题,建议自己动脑思考,动手实操。
代码如下:(1-n之间不包括n本身的奇书之和)

import java.util.Scanner;

public class question_CSDN {
/**
* ‎从键盘输入一个正整数n(如果输入数据不符合要求,提醒用户重新输入,直到满足要求为止). 求解1-n之间所有奇数的和。请使用循环语句实现
*
*
* @param args
*/
public static void main(String[] args) {
int sum = 0;
int count = 1;// 用于判断循环输入是否结束
Scanner input = new Scanner(System.in);// 在循环体外部创建输入流,只需创建一次!
System.out.println("请输入一个正整数:");
do {
if (input.hasNextInt()) {// 判断输入的数据类型,若正确则执行下面程序
int n = input.nextInt();
if (n <= 0) {//n<=0,置count为0,重新输入
System.out.println("输入错误!请重新输入!");
count = 0;
} else {//n为整形且大于零,则继续计算
for (int i = 0; i < n; i++) {
if (i % 2 == 1) {// i为奇数
sum += i;
}
}
}
} else {// 若输入的数据类型错误,则返回重新输入
count = 0;
System.out.println("输入错误!请重新输入!");
}
} while (count == 0);
input.close();//关闭输入流
System.out.println("1-n之间的奇数之和为"+sum);
}

}

这是你的作业吧.先独立思考好吗


#include
int main(int argc, char* argv[])
{
int n = 0;
for (;;) {
printf("please intput a number!!\n");
char str1[5];
gets(str1);
n = atoi(str1);
if (n <= 0) {
printf("input error!!\n");
continue;
}
break;
}
int total = 0;
for (int i = 0; i <= n; ++i) {
if (i % 2 == 0) {
continue;
}
total += i;
}
printf("n = %d, total = %d\n", n, total);
return 0;
}