CodeRookie


私信TA

用户名:Shmily124

访问量:133552

签 名:

清风前烹茶对弈,明月下把酒言欢

等  级
排  名 14
经  验 22974
参赛次数 7
文章发表 39
年  龄 0
在职情况 学生
学  校 ZUA
专  业 计科

  自我简介:

悄悄地秃头,然后惊艳所有人?

解题思路:


创建一个链表,用根节点储存储存所有节点数据的和,每次新增节点就将根节点与新增节点的数据相加

并且设立一个尾节点指针始终指向最后一个节点

由于题目简单,就不写函数了


注意事项:


不要忘了将next指针初始化为空

参考代码:

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

typedef struct LNode
{
    int a;                      //实数部分
    int b;                      //虚数部分
    struct LNode *next;         //next指针
} LNode, *LinkList;             //结构体类型为LNode,指针类型为LinkList

int main()
{
    LinkList L, End;                //定义根节点L与尾指针End
    L = (LinkList)malloc(sizeof(LNode));    //为根节点分配空间
    L->a = 0;
    L->b = 0;
    L->next = NULL;                 //初始化根节点,next为空
    End = L;                        //End首先指向根节点
    for (int i = 0; i < 10; i++)
    {
        LinkList p = (LinkList)malloc(sizeof(LNode));
        scanf("%d %d", &p->a, &p->b);
        L->a += p->a;
        L->b += p->b;
        p->next = NULL;             //新增节点p初始化next为空
        End->next = p;              //尾指针next指向新增节点p
        End = p;                    //尾指针指向p
    }
    printf("%d+%di\n", L->a, L->b);     //输出
    return 0;
}


取巧方法,无链表,应题代码:

#include <stdio.h>

int main()
{
    int sum[2] = {0};
    int a, b;
    for (int i = 0; i < 10; i++)
    {
        scanf("%d %d", &a, &b);
        sum[0] += a;
        sum[1] += b;
    }
    printf("%d+%di\n", sum[0], sum[1]);
    return 0;
}


 

0.0分

2 人评分

  评论区

  • «
  • »