s99q


私信TA

用户名:20206805

访问量:17570

签 名:

在否定中提升自己

等  级
排  名 290
经  验 5662
参赛次数 0
文章发表 91
年  龄 19
在职情况 学生
学  校 东大
专  业 软件工程

  自我简介:

代码是大一上学期写的,格式等都不规范,请多包涵。编写的代码,有些是为了练习库函数的使用,所以看着可能比较怪或者难以理解。


解题思路:

因为本题比较单一,结构比较简单,建议使用链表形式

1】:也可以利用malloc申请空间,就可以到到结构体数组
2】:在设定结构体时,可以在结构体中,定义一个长度为2的数组,用来存储两个数,声请十个空间即可注意事项:



参考代码:

如下有两种解法

1】:

typedef struct stu   //定义结构体
{
  int a[2];         //分别是实部和虚部
}*stu0, stu1;         //省字用的申请


#include#includeint main()
{
    int i = 0;
    int b[2] = { 0 };
    stu0 p = (stu0)malloc(sizeof(stu1) * 10);         //申请相应大小的空间,既可以根据下标进行索引
    for (i = 0; i < 10; i++)
    {
        scanf("%d%d", &p[i].a[0], &p[i].a[1]);       //数据的读入
        b[0] += p[i].a[0];
        b[1] += p[i].a[1];
    }
    printf("%d+%di", b[0], b[1]);
    free(p);                                               //释放空间    
}

2】:首先说明在这里我以p为先,q为后

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>

typedef struct plural
{
	int a[2];
	struct plural* next;                                    //结构体内的成员,但是由于其类型是该结构体
	                                                        //因此可以用来索引
}*plural0,plural1;



int main()
{
	plural0 p = NULL , q = NULL;
	int i = 1, sum[2] = {0};
	plural0 head = p =  (plural0)malloc(sizeof(plural1));     //这里先要定义一个头
	if (!head)
	{
		printf("There are not enough memery0");
		exit(-1);
	}
	scanf("%d%d", &head->a[0], &head->a[1]);                   //数据读入
	while (i <= 9)
	{
		q = (plural0)malloc(sizeof(plural1));              //空间申请

		scanf("%d%d", &q->a[0], &q->a[1]);
		q->next = NULL;                                    //指针指向
		p->next = q;
		p = q;
		i++;
	}
	p = head;
	while (p)
	{
		sum[0] += p->a[0];
		sum[1] += p->a[1];                       //计算出相应的数值
		p = p->next;
	}
	p = head;
	while(p)
	{
	    free(p);                                     //释放相应的空间
	    p = p->next;
	}
	printf("%d+%di", sum[0], sum[1]);
}


 

0.0分

0 人评分

  评论区

  • «
  • »