c语言a+b输入一系列对整数,用
给你个例子
#include
#include
/**
* 整数对链表,以便可以输入任意多个整数对
*/
typedef struct ABS* PABS;
struct ABS {
int a;
int b;
int sum;
PABS next;
};
/**
* 将实数对保存到链表中,插在队尾
* @param pabs 链表的最后一个节点
* @param a
* @param b
* @return 0 插入成功 其他 插入失败
*/
int insert(PABS pabs, int a, int b) {
PABS abs = (PABS) malloc(sizeof (...全部
给你个例子
#include
#include
/**
* 整数对链表,以便可以输入任意多个整数对
*/
typedef struct ABS* PABS;
struct ABS {
int a;
int b;
int sum;
PABS next;
};
/**
* 将实数对保存到链表中,插在队尾
* @param pabs 链表的最后一个节点
* @param a
* @param b
* @return 0 插入成功 其他 插入失败
*/
int insert(PABS pabs, int a, int b) {
PABS abs = (PABS) malloc(sizeof (ABS));
if (abs == NULL) {
//申请空间失败
return 1;
}
abs->a = a;
abs->b = b;
abs->sum = a + b;
abs->next = NULL;
pabs->next = abs;
return 0;
}
/**
* 从简盘输入ab整数对,并形成一个单向链表
* @param pabs
* @return 链表中整数对的数量
*/
int inputab(PABS pabs) {
int a;
int b;
int cnt = 0;
while (1) {
a = 0;
b = 0;
printf("请输入两个整数,之间用空格分开,用回车表示整数对输入完成:");
scanf("%d%d", &a, &b);
if ((a == 0) && (b == 0)) {
//输入两个0,结束输入
break;
}
if(insert(pabs, a, b)){
//插入链表,并判断是否插入成功
//插入失败
break;
}
cnt++;
pabs = pabs->next;
}
return cnt;
}
int main(int argc, char** argv) {
//链头,不保存数据,其sum表示的是链表中的节点数量
struct ABS abs;
PABS pabs ;
abs。
next = NULL;
abs。sum = 0;
abs。sum = inputab(&abs);
printf("一共输入了 %d 个整数对\n",abs。sum);
//显示信息
pabs = abs。
next;
while(pabs != NULL){
printf("%d\n",pabs->sum);
pabs = pabs->next;
}
//释放内存
pabs = abs。
next;
while (pabs != NULL) {
pabs1 = pabs;
pabs = pabs->next;
free(pabs1);
}
return 0;
}
这样的题目很容易,建议你还是好好做做,对你将来有好处。
收起