C语言关于循环的作业,用VC6++

3.2求1-1/3+1/5-1/7+..............读入1个正实数eps,计算并输出1-1/3+1/5-1/7+........,直到最后一项的绝对值小于ep... 3.2 求1-1/3+1/5-1/7+..............读入1 个正实数eps,计算并输出1-1/3+1/5-1/7+........,直到最后一项的绝对值小于eps(保留6 位小数)。

3.6 统计字符
输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
展开
 我来答
xoalyg
2012-04-28 · TA获得超过4178个赞
知道大有可为答主
回答量:2356
采纳率:100%
帮助的人:2378万
展开全部
/*
eps = 0.000005
计算结果是 : 0.785401
Press any key to continue
*/
#include <stdio.h>
#include <math.h>

double fun1(double eps) {
double n = 1,sign = 1;
double sum = 0,delta;
do {
delta = sign / (2 * n - 1);
sum += delta;
sign = -sign;
++n;
}while(fabs(delta) >= fabs(eps));
return sum;
}

int main() {
double eps;
printf("eps = ");
scanf("%lf",&eps);
printf("计算结果是 : %.6lf\n",fun1(eps));
return 0;
}
#include <stdio.h>
#include <string.h>

int main() {
int i,m,len,others = 0;
int LowerQuantity[26] = {0};
int CapQuantity[26] = {0};
int Arab[10] = {0};
char ch,chs[1024];
printf("\n请输入字符串:");
i = 0;
while((i < 1024) && (ch = getchar()) != '\n') {
chs[i] = ch;
i++;
}
chs[i] = '\0';
len = strlen(chs);
printf("\n有效长度为:%d个字符。\n\n",len);
for(i = 0 ; i < len ; i++) {
if((chs[i] >= 'a') && (chs[i] <= 'z')) (LowerQuantity[chs[i] - 'a'])++;
else if((chs[i] >= 'A') && (chs[i] <= 'Z')) (CapQuantity[chs[i] - 'A'])++;
else if((chs[i] >= '0') && (chs[i] <= '9')) (Arab[chs[i] - '0'])++;
else others++;
}
m = LowerQuantity[0];
for(i = 1 ; i < 26 ; i++) {
if(LowerQuantity[i] > 0) printf("%c : %d次。\n",i + 'a',LowerQuantity[i]);
if(LowerQuantity[i] > m) {
m = LowerQuantity[i];
ch = i;
}
}
if(m > 0) printf("小写字符%c出现的次数最多,共%d次。\n\n",ch + 'a',m);
m = CapQuantity[0];
for(i = 1 ; i < 26 ; i++) {
if(CapQuantity[i] > 0) printf("%c : %d次。\n",i + 'A',CapQuantity[i]);
if(CapQuantity[i] > m) {
m = CapQuantity[i];
ch = i;
}
}
if(m > 0) printf("大写字符%c出现的次数最多,共%d次。\n\n",ch + 'A',m);
m = Arab[0];
for(i = 1 ; i < 10 ; i++) {
if(Arab[i] > 0) printf("%c : %d次。\n",i + '0',Arab[i]);
if(Arab[i] > m) {
m = Arab[i];
ch = i;
}
}
if(m > 0) printf("\n阿拉伯数字%c出现的次数最多,共%d次。\n\n",ch + '0',m);
if(others > 0) printf("\n其他字符共%d个。\n\n",others);
return 0;
}
追问
帮忙看一下这个有什么问题,好像不会循环,只是输出s=1.000000
#include
#include
int main()
{
double n=1,i=1;
double eps,t,s=0.0;
scanf("%d",&eps);
do(
t=n*1.0/i;
s+=t;
n=-n;
i++,i++;
}
while(fabs(t)>=fabs(eps));
printf("s=%.6f\n",s);
return 0;
}
追答
scanf("%d",&eps);
双精度数据输入格式是%lf,用%d当然不行了。
wangbinwh
2012-04-28 · TA获得超过639个赞
知道大有可为答主
回答量:1367
采纳率:100%
帮助的人:524万
展开全部
我资料里有联系方式
追问
帮忙看一下这个有什么问题,好像不会循环,只是输出s=1.000000
#include
#include
int main()
{
double n=1,i=1;
double eps,t,s=0.0;
scanf("%d",&eps);
do(
t=n*1.0/i;
s+=t;
n=-n;
i++,i++;
}
while(fabs(t)>=fabs(eps));
printf("s=%.6f\n",s);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0ef73a2
2012-04-28
知道答主
回答量:14
采纳率:0%
帮助的人:4.8万
展开全部
3.2
#include<stdio.h>
void main ()
{
double s=0.0;
int t=1,fuhao=1;
while(1.0/t>=1e-6)
{
s+=fuhao/(2.0*t-1.0);
fuhao*=(-1);
t++;
}
printf("和是%0.6f",s);
}

3.6
#include<stdio.h>
void main ()
{
int i=0,chars=0,kongs=0,nums=0,others=0;
char s[50];
scanf("%s",s);
while(*(s+i))
{
if(*(s+i)>='a'&&*(s+i)<='z'||*(s+i)>='A'&&*(s+i)<='Z')
chars++;
else if(*(s+i)>=' ')
kongs++;
else if(*(s+i)>='0'&&*(s+i)<='9')
nums++;
else
others++;
i++;
}
printf("英文字母数有%d个,空格有%d个,数字有%d个,其他字符有%d个。",chars,kongs,nums,others);
}
追问
帮忙看一下这个有什么问题,好像不会循环,只是输出s=1.000000
#include
#include
int main()
{
double n=1,i=1;
double eps,t,s=0.0;
scanf("%d",&eps);
do(
t=n*1.0/i;
s+=t;
n=-n;
i++,i++;
}
while(fabs(t)>=fabs(eps));
printf("s=%.6f\n",s);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式