【C语言】帮我看看哪里写错了TAT……题目:使用抽象链表储存10个复数并输出它们的和。

用抽象链表储存10个复数,并在遍历链表时直接获得它们的和。 下面的代码哪错了?~

#include
#include
#include//头文件
#include


typedef struct COMPLEX//这里定义
{ double real,imag;
struct COMPLEX*next;
}COMPLEX;
typedef struct
{ double real,imag;}ACOMPLEX;
#define LEN sizeof(COMPLEX)
COMPLEX*creat();
ACOMPLEX LITraverse(COMPLEX*list);

int main()
{
COMPLEX*heads;
ACOMPLEX average;
printf("Please input ten complex.The real and the imag are divided by ' '.");
heads=creat();
average=LITraverse(heads);
printf("The average of the ten complex is %lf+%lfi.",average.real,average.imag);
getch();
return 0;
}

COMPLEX *creat()
{
COMPLEX*head,*p1,*p2;
int n=0;
head=(COMPLEX*)malloc(LEN);
p1=p2=(COMPLEX*)malloc(LEN);
scanf("%lf %lf",&p1->real,&p1->imag);
head->next=p1;
while(n<9)//多了一次,
{
p1=(COMPLEX*)malloc(LEN);
scanf("%lf %lf",&p1->real,&p1->imag);
p2->next=p1;
p2=p1;
++n;
}
p2->next=NULL;
return head;
}

ACOMPLEX LITraverse(COMPLEX*list)
{
ACOMPLEX ave;
COMPLEX*t=list->next;
ave.real=0;
ave.imag=0;
if(list==NULL)
printf("ERROR!LITraverse:Parameter illegal.");
while(t!=NULL){
ave.real+=t->real;
ave.imag+=t->imag;
t=t->next;
}
ave.real=ave.real/10;
ave.imag=ave.imag/10;
return ave;
}

copy可以直接运行

刚学习也 呵呵 写的不细致。
忽忽~ 我错咯~ 我自己看书,半个月,还没看到那去,肯定写搞笑咯,我表示的只是一个形式,非真正的复数也~ 算咯,摆那我也不删它咯。
你可以不用函数,自己改了就行。

/**
* Generate the sum and product of two plural numbers.
*/
#include

struct pluralNum {
float x; float y;};

int main(void)
{
struct pluralNum p1, p2;
struct pluralNum getPluralNum(void);
void calSum(struct pluralNum a, struct pluralNum b);
void calProduct(struct pluralNum a, struct pluralNum b);

p1 = getPluralNum();
p2 = getPluralNum();

calSum(p1, p2);
calProduct(p1, p2);

printf("Thank You!
");
return 0;
}


struct pluralNum getPluralNum(void)
{
struct pluralNum temp;
static int count = 1;

printf("Please specify the plural number.
");
printf("real number: x = ");
scanf("%f", &temp.x);
printf("imaginary number: y = ");
scanf("%f", &temp.y);

printf("You specified the plural number p%i =:
", count);
printf("%.2f+%.2fi
", temp.x, temp.y);
count++;

return (temp);
}


void calSum(struct pluralNum a, struct pluralNum b)
{

printf("The sum of p1 and p2 is:
");
printf("%.2f+%.2fi
", a.x + b.x, a.y + b.y);
}


void calProduct(struct pluralNum a, struct pluralNum b)
{
float realNum, imaginaryNum;

realNum = a.x * b.x - a.y * b.y;
imaginaryNum = a.x * b.y + b.x * a.y;

printf("The product of p1 and p2 is:
");
printf("%.2f+%.2fi
", realNum, imaginaryNum);
}

C语言 编程后,有错误,怎么查看是那部分出错了!
答:【编写完代码后直接编译,如果有错误,编译器会自动弹出提示的】例子如下:如上图简单的C程序,编写完之后直接点击编译,然后会弹出错误信息,如下图所示:修改错误之后,再次编译就可以得到正确的输出结果,如下图所示:

C语言哪里写错了呢?
答:float sum(float s); // 这一行有问题, 没有代入正确的参数, 也没有取出计算的结果.=> s = sum(arr, i); // 预期可能的叙述句 其实我觉得有复杂化了一点, 就单纯那一行的题目要求, 不需要次数, 也没有要逐次列印(不保留输入纪录), 基本上可以省略一些.1. 将题目描述, 拆解成流程 /...

懂C语言的帮忙看下哪里写错了
答:include<stdio.h> include<math.h>//加这个头文件,否则不能用sqrt /*求一元二次方程ax^2+bx+c=0的根*/ void main(){ int iFirnum,iSecnum,iThinum;float e,x1,x2,r,i;//这里不能声明为int printf("请输入二次项系数a:");scanf("%d",&iFirnum);printf("请输入一次项系数b:");...

c语言--帮我看看那写错了
答:include<stdio.h> void main(){ int n,i=0;int d;int a[64];printf("请输入您要排序的数字个数:\n");scanf("%d",&n);printf("请输入您要排序的数组:\n");for(i=0;i<n;i++)scanf("%d",&a[i]);for (int b = 1; b < n; b++)for (int c = 0; c < n - 1;...

关于C语言编写程序的一个疑问 高手帮忙看看我的程序哪错了
答:最后,尽量不要在C语言代码中夹杂中文,虽然我知道你是在做说明,那就正规点用//作注释。不要再写成char verb[100][8]={"开炮",等一百个词}; 养成良好的代码书写习惯也是学习C语言很重要的一环。特别提醒这四个问题,祝你编程方面有所提高。另外说明一声,C语言是认汉字的,你老师说的没错。以...

c语言编译出错,怎么查找错误出在哪行?
答:步骤:1.打开源代码文件,在控制台里查看错误类型。2.双击错误提示,蓝色光标会自动定位到出错的代码行。

C语言,我哪里写错了?
答:include <stdio.h>int main(){ printf("请输入成绩"); float a; scanf("%f",&a); switch((int)a) { case 10: printf("优秀");break; case 9: printf("优秀");break; default: printf("良好"); } return 0;}小括号扩上int,而不是a;另外...

C语言开关灯问题,麻烦大神们帮我看看这个程序哪里错了啊,结果不对...
答:两个错误:1、int a[6000]={1};这句。你这只是将a[0]赋值1,其他都是0,数组默认以0填充,应该改为:int a[6000];for(i=0;i<6000;i++)a[i]=1;2、第二层循环里:if(a[j]==0)a[j]=1;if(a[j]==1)a[j]=0;这个语句把所有的灯都关闭了,因为如果关了,就打开;打开后又...

请问各位大神,这是哪里错了?(C语言)
答:程序中间的字母大小写写错了。C语言大小写是区分的。#include<stdio.h>int main(){ int x,y,z;scanf("%d%d",&x,&y);//把Y改成了y z=x+y;printf("%d",z);}编程,你得多次测试,反复调试,工作量还是很大的。

C语言大神看过来!想知道我哪里写错了。。。
答:这样就对了:include<stdio.h> int a[10];int j;void function(int i,int sum){ if(i>10) return; //中间过程有可能会超过00分 else if(i==10&&sum==100){ for(j=0;j<10;j++){ printf("%d",a[j]);} printf("\n");} a[i]=0;function(i+1,sum-i-1);a[i]=1;f...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网