这是哪里错了呀,为什么实际输出是0呀😭,有没有好人指点指点。
你这 s int类型不对吧,至少也是 double , double s=0; 后边 s+=1.0/i*x;
int main()
{
int i,x=1;
double s=0;
for(i=1;i<=100;i++){
s+=1.0/i*x;
x=-x;
}
printf("%.3f",s);
return 0;
}
算术运算的规则是从右到左的顺序,程序里面有一个1/ix,由于都是整型(int)的数据,应该1/ix的值一直都是0,所以s进行相加得到和,最后s的值还是0,。
有问题可以私聊哈!
1)一行输出5个数
2)循环语句不限制
#include<stdio.h>
#include<math.h>
int main()
{
int a[1000],i=0,c=0;
char b;
do {
scanf("%d%c",&a[i],&b);
i++;
}while((int)b!=10);//输入若干个数直到换行结束
for(int j=0;j<i;j++)//对若干个数进行判断
{
if(a[j]>1)
{
int s=sqrt(a[j]),judge=1;
for(int k=2;k<=s;k++)
{
if(a[j]%k==0&&a[j]!=2)//满足条件为合数
{
judge=0;
break;
}
}
if(judge)
{
printf("%d",a[j]);
c++;
if(c%5==0)printf("\n");
else printf(" ");
}
}
else printf("输入的值不是除了1之外的正整数");
}
return 0;
}
我很抱歉, 我并没有提供具体的问题, 这只是一个模板, 目的是测试问答系统是否正常工作.
你return 0干什么
你用int干什么,不该用float吗
这么写,供参考:
#include <stdio.h>
int main()
{
/**********Begin***********/
int i;
double s;
for (i = 1, s = 0; i <= 100; i++)
i % 2 ? s += 1.0 / i : s -= 1.0 / i;
printf("%.3f", s);
/***********End************/
return 0;
}