|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 gj113669 于 2013-3-14 13:35 编辑
/*
----------------------------------------------------------
求1到N之间所有的奇数和、偶数和、奇数个数和奇数的平圴值
----------------------------------------------------------
*/
# include <stdio.h>
int main(void)
{
int i, sum = 0, osum = 0, cnt = 0, n; //cnt表是数量
float svg; //SVG表示平均值
char a; //定义一个存放字符型数据的变量
do
{
printf("请输入您需要计算的数值:");
scanf("%d", &n);
for (i=1; i<=n;i++)
{
if (i%2==1) //判断除以2余1的数(奇数)如果成立执行下面的表达式
{
sum = sum + i;
cnt = cnt + 1; /*计算奇数的个数,每循环一次CNT的值加1,
从而得到了求奇数数量的目的*/
}
if (i%2==0)
osum = osum + i;
}
svg = 1.0 * sum /cnt; //用得到的奇数和除以奇数的个数求出平均值
printf ("奇数和是:%d\n偶数和是:%d\n奇数的个数是:%d\n平均值是:%f\n", sum, osum, cnt, svg);
printf("如果继续请按Y否则按N退出:"); //人机交互提示语
scanf (" %c", &a); //字符型数据输入必需在%C前加空格
}while (a=='Y'|| a=='y'); //如果表达式成立,那从DO开始重新执行
return 0;
}
程序用do...while循环作人机交互,可是只有第一次运行时数据是正确的,到第二次时总是把上次的数据加上,是不是应该有一个把数据清零的语句。还有在先择Y/N实怎么才能实现只有按这两个字母才能实现继续或退出,我这个程序只能实现按Y继续,按非Y的退出。
|
|