解题思路:
因为本题比较单一,结构比较简单,建议使用链表形式
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 人评分
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:504 |
三角形 (C++代码)递推浏览:825 |
C语言程序设计教程(第三版)课后习题6.5 (C++代码)浏览:487 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:1368 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:597 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:1482 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:350 |
1012题解浏览:938 |
字符串输入输出函数 (C语言代码)浏览:2609 |
出圈】指针malloc版浏览:377 |