新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
在师宗等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、成都网站建设 网站设计制作定制制作,公司网站建设,企业网站建设,品牌网站建设,成都营销网站建设,成都外贸网站建设公司,师宗网站建设费用合理。
double fun(double m)
{
double Sn=1.0,i,t=1.0;
for(i=1.0; ;i++){
t=t*(1.5-i)*m/i;
Sn+=t;
if(t0.000001 t-0.000001)
break;
}
return Sn;
}
int main()
{
double x;//你这里用的居然是int,看了n久fun()函数发现后简直吐一口老血。。。
printf("请输入x:");
scanf("%lf",x);
printf("Sn=%lf\n",fun(x));
return 0;
}
我几乎是在你程序的基础上改的,虽然改了很多,但你应该看得懂~~主要就是把你fun()函数不简洁的地方去了^~^
#includestdio.h
void main()
{
float a1,a2,a3,a4,y;
printf("enter a1,a2,a3,a4\n");
scanf("%f%f%f%f",a1,a2,a3,a4);
y=a1*1+a2*2+a3*3+a4*4;
printf("%f",y);
return 0;
}
#includestdio.h
#includemalloc.h
#define Null 0
typedef struct Node
{
int coeff;
int expo;
Node *next;
}listNode,*list;
list createList()
{
list head;
head = (list)malloc(sizeof(listNode));
head = NULL;
printf("want to create a new node?y/n\n");
char ch;
fflush(stdin);
scanf("%c",ch);
while(ch=='Y' || ch== 'y')
{
list p;
p = (list)malloc(sizeof(listNode));
printf("input coeff\n");
int coeff;
scanf("%d",coeff);
p-coeff = coeff;
printf("input expo\n");
int expo;
scanf("%d",expo);
p-expo = expo;
p-next = NULL;
//链表为空的时候,即添加首个元素
if(head == NULL)
{
head=p;//添加代码
}
else
{
list prev,curr;
curr = head;
prev = NULL;
//找到添加位置
while(curr!=NULL curr-expop-expo)
{
prev=curr;
curr=curr-next;//添加代码
}
if(curr!=NULL curr-expo == p-expo)
{
curr-coeff = curr-coeff + p-coeff;
printf("want to create a new node?y/n\n");
fflush(stdin);
scanf("%c",ch);
if(ch=='Y' || ch== 'y')
continue;
else
return head;
}
//插入结点,结点非首
if(prev != NULL)
{
p-next=curr;
prev-next=p;
//添加代码
}
//插入结点,结点为首
else
{
p-next=curr;
head=p;
//添加代码
}
}
printf("want to create a new node?y/n\n");
fflush(stdin);
scanf("%c",ch);
}
return head;
}
list add(list head1,list head2)
{
list head,newNode,ptr1,ptr2,ptr3;
ptr1 = head1;
ptr2 = head2;
head = NULL;
while(ptr1 != NULL ptr2 != NULL)
{
newNode = (list)malloc(sizeof(listNode));
if(ptr1-expo ptr2-expo)
{
newNode-coeff = ptr1-coeff;
newNode-expo = ptr1-expo;
newNode-next = NULL;
ptr1 = ptr1-next;
}
else if(ptr1-expo ptr2-expo)
{
newNode-coeff = ptr2-coeff;
newNode-expo = ptr2-expo;
newNode-next = NULL;
ptr2 = ptr2-next;//添加代码
}
else
{
newNode-coeff = ptr1-coeff + ptr2-coeff;
newNode-expo = ptr1-expo;
newNode-next = NULL;
ptr1 = ptr1-next;
ptr2 = ptr2-next;
}
if(head==NULL)
{
head = newNode;
}
else
{
ptr3 = head;
//添加代码
while(ptr3-next != NULL)
ptr3 = ptr3-next;
ptr3-next = newNode;
}
}
while(ptr1 != NULL)
{
newNode = (list)malloc(sizeof(listNode));
newNode-coeff = ptr1-coeff;
newNode-expo = ptr1-expo;
newNode-next = NULL;
ptr3 = head;
if(ptr3 == NULL)
head = ptr3 = newNode;
else
{
while(ptr3-next != NULL)
ptr3 = ptr3-next;
ptr3-next = newNode;//添加代码
}
ptr1 = ptr1-next;
}
while(ptr2 != NULL)
{
newNode = (list)malloc(sizeof(listNode));
newNode-coeff = ptr2-coeff;
newNode-expo = ptr2-expo;
ptr3 = head;
if(ptr3 == NULL)
head = ptr3 = newNode;
else
{
while(ptr3-next != NULL)
ptr3 = ptr3-next;
ptr3-next = newNode;
}
ptr2 = ptr2-next;
}
return head;
}
void display(list head)
{
list ptr = head;
while(ptr != NULL)
{
if(ptr != head )
printf("+");
printf("%d",ptr-coeff);
printf("x^");
printf("%d",ptr-expo);
ptr = ptr-next;
}
printf("\n");
}
int main(int argc, char* argv[])
{
list head,head1,head2;
printf("input the first list\n");
head1 = createList();
display(head1);
printf("input the second list\n");
head2 = createList();
display(head2);
head = add(head1,head2);
display(head);
return 0;
}
#include stdio.h
int Fluction(int);//声明实现多项式 1-1/2+1/3-1/4+1/5-1/6+...的功能函数
double sum;//定义全局变量(其实一般不推荐定义全局变量)
int main()
{
int m,n;//m个测试实例,求前 n项和
while(scanf("%d",m)!=EOF)
{
for(int i=1;i=m;i++)//输入 m个测试实例,所以循环 m次
{
scanf("%d",n);
Fluction(n);//调用函数,传参 n
printf("%.2lf\n",sum);//保留两位小数输出
}
}
}
int Fluction(int t)//函数定义,实现 1-1/2+1/3-1/4+1/5-1/6+...多项式
{
int sign=1;//定义符号
double x;
sum=0;
for(int i=1;i=t;i++)//要求前几项的和就循环几次
{
x=(double)sign/i;//强制转变类型
sum+=x;
sign*=-1;
}
return sum;//一定要定义它返回 sum的值,否则,函数会自动返回 0
}
for (j=1;j=n;j++)
{
if (j%2==0)
{
j=j*(-1);
}
这段死循环了 0 - 2 - -2 - 2 - -2