写了一个“求1到100之间的奇数之和与奇数个数,大家给看下写的对不对”

w1158202001 2012-07-13 09:48:01
自己试着写了个 程序 ,麻烦大家给看下 这么写对不对?给指导一下谢谢!

编译器 vc++ 6.0


# include <stdio.h>

int main(void)
{
int i;
int sum = 0;
int num = 0; //num = number 个数

for (i=1; i<=100; ++i)
{
if (i%2 != 0)
{
sum = sum +i;
num = num +1;
}

}
printf("sum = %d\n", sum);
printf("num = %d\n", num);
return 0;
}
...全文
1263 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
氰客 2012-07-14
  • 打赏
  • 举报
回复
OK!
wizard_tiger 2012-07-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

#include <stdio.h>

int main(void)
{
int i, sum = 0, num = 0;

for(i = 1; i <= 99; i+=2){
sum += i;
num++;
}

printf("%d %d\……
[/Quote]
要是“加速”一下程序,干脆用公式算等差数列的和,奇数为50个。
wizard_tiger 2012-07-14
  • 打赏
  • 举报
回复
LZ程序没有问题。
沭水河畔 2012-07-14
  • 打赏
  • 举报
回复
#include <stdio.h>

int main(void)
{
int i, sum = 0, num = 0;

for(i = 1; i <= 99; i+=2){
sum += i;
num++;
}

printf("%d %d\n", sum, num);

printf("%d\n", (1 + 99) * num / 2);
return 0;
}
也可以“加速”一下程序,比如既然是奇数,就没必要自增1了,直接自增2。或者(100 - 1 + 1) / 2直接算出奇数个数。
另外,求和满足“梯形面积计算公式”。
fdhchina1 2012-07-14
  • 打赏
  • 举报
回复
没有问题 不过个人觉得定义变量是最好都赋初值
JXLFZ 2012-07-14
  • 打赏
  • 举报
回复
两个等差数列呢,直接求和就行了,不用循环的
翟码农 2012-07-13
  • 打赏
  • 举报
回复
你跑了不就知道啦。为判定你程序的正确性,你可以前面写个 #define NUM 100,然后你可以改变NUM的值,例如4,5,6等,算一下,看与你程序跑出来的结果是否一致就行啦。
pathuang68 2012-07-13
  • 打赏
  • 举报
回复
没有问题。

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧