风速风向的气象要素:编辑C语言程序:1。从键盘任意输入一组2位的10进制整数,编程统计其中正、负数各为多少?

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 00:20:25
有哪位高手知道怎么编写啊,要具体的步骤,谢谢了啊~
还有1个问题,有劳各位大哥了:
。编程统计数列1/(n+1)的前100项之和(其中n=1、2.....100)。

第一题:
#include <stdio.h>
#define MAX 100
void main()
{
int i,j=0,q=0;
int x;
printf("请输入一组2位的整数,按回车确认(按0退出输入)\n");
for(i=0;i<MAX;i++)
{
scanf("%d",&x);
if(x==0) break;
if(x>=10&&x<100) j++;
if(x>-100&&x<=-10) q++;
}
printf("这组数中2位的整数有正数%d个,负数%d个\n",j,q);

}

第2题:
#include <stdio.h>
#define MAX 101
void main()
{
float i, j=0;
for(i=1;i<MAX;i++)
{
j=j+1/(i+1);
}
printf("1/(n+1)的前100项之和为%f\n",j);

}

1.首先要设定一个停止标志,总不可能让你一直无限输入数据吧?所以,取当输入的数据为0时停止输入.
2.定义一个变量,从键盘获取数据,假设为a.
3.定义两个变量记录正数和负数的个数,设正数的个数为sum,负数的个数为sum1,并初始化,初值均为0
4.用循环从键盘输入数据a,当a>=10且a<100时sum自加1;当a<=-10且a>-100时,sum1自加1;当a==0时,停止输入,输出结果,sum,sum1.
源程序:
#include<stdio.h>
main()
{int a,sum=0,sum1=0; \*定义并初始化*\
while(a!=0)
{scanf("%d",&a); \*输入a*\
if(a>=10&&a<100) sum=sum+1; \*判断是否为二位正数*\
if(a>-100&&a<=-10) sum1=sum+1; \*判断是否为二位负数*\
}
printf("\nsum=%d,sum1=%d",sum,sum1); \*输出结果*\
}
运行:
输入 1
2
45
23
48
-12
-23
0
输出:sum=3 sum1=2

二:
这题跟上题一样,也只用到一个累加器.
定义一个浮点型变量i表示1~100,再定义一个浮点型变量j表示(i+1)的倒数,然后定义一个浮点型变量sum表示数列和.
源程序:
#include<stdio.h>
main()
{ float sum=0,j,i;
for(i=1;i<100;i++)
{j=1/(i+1);
sum=sum+j;
}
printf("%f",sum);
}
运行结果:4.197278

为什么要定义i为浮点型呢?如果i为整型,则j=1/(i+1)始终为0,最后结果也会为0.如果一定要定义i为整型,就得将上式改为j=1.0/(i+1);
其实这类题目你只要理解了1+2+3....+100的做法就不会不问题了.
程序在tc2.0下调试通过.

用数组接收输入的数字,然后一个一个比较,比0大的就在正数上加1,比0小的在负数上加1,还可以顺便知道有几个0。自己能做吧!