编辑C语言程序:1。从键盘任意输入一组2位的10进制整数,编程统计其中正、负数各为多少?
答案:4 悬赏:0
解决时间 2021-02-08 02:29
- 提问者网友:他是我的あ男人
- 2021-02-07 05:35
编辑C语言程序:1。从键盘任意输入一组2位的10进制整数,编程统计其中正、负数各为多少?
最佳答案
- 二级知识专家网友:不傲怎称霸
- 2021-02-07 05:51
#include<stdio.h>
#define N 10000
int main()
{
int i=0,k,z=0,f=0;
printf("请输入若干个2位数中间用空格阁开以0表示输入结束\n");
while(scanf("%d",&k)!=EOF)
{
if((k<9&&k>=-9&&k!=0)||(k>=100&&k<=-100))
{
printf("不是两位数");
continue;
}
else
if(k>9&&k<100)
z++;
else
if(k<-9&&k>-100)
f++;
if(k==0)
break;
}
printf("负数有:%d 个\n",f);
printf("正数有:%d 个\n",z);
return 0;
}
#define N 10000
int main()
{
int i=0,k,z=0,f=0;
printf("请输入若干个2位数中间用空格阁开以0表示输入结束\n");
while(scanf("%d",&k)!=EOF)
{
if((k<9&&k>=-9&&k!=0)||(k>=100&&k<=-100))
{
printf("不是两位数");
continue;
}
else
if(k>9&&k<100)
z++;
else
if(k<-9&&k>-100)
f++;
if(k==0)
break;
}
printf("负数有:%d 个\n",f);
printf("正数有:%d 个\n",z);
return 0;
}
全部回答
- 1楼网友:输掉的尊严
- 2021-02-07 06:32
#include
int main(void)
{
int a[1000];
int num = 0;
printf("请输入任意个整数,(-1)结束输入");
{
while(1)
{
scanf("%d",&a[num++]);
if(a[num-1] == -1)
break;
}
}
for(i=num-1; i>=0; --i)
{
printf("%d ",a[i]);
}
return 0;
}
- 2楼网友:何以畏孤独
- 2021-02-07 06:20
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下调试通过.
- 3楼网友:气场征服一切
- 2021-02-07 06:00
第一题:
#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);
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯