多数组动态相加

 

问题 A+B+C…..
已知有n组整数,求每组整数的和。
输入:
    第一行为整数组数n,从第二行开始每组整数的第一个数为该组整数的个数
下面为具体的整数。
输出:
    每组整数的和
输入样例(文件输入)    
     2
     2
     1
     2
     3
     1
     2
     3
输出样例
     3
     6
代码如下:
方法一:
#include<iostream>
#include <fstream>
using namespace std;
void main()
{
int a,b,c,s;
ifstream filein("input.txt");
filein>>a;
for(int i=1;i<=a;i++)
{
  s=0;
  filein>>b;
  for(int j=1;j<=b;j++)
  {
   filein>>c;
   s+=c;
  }
     cout<<s<<endl;
}
}

方法二:

#include <memory.h>
#include<stdio.h>
#include<stdlib.h>
char change[10],s=NULL;
FILE *stream=fopen("input.txt","rb");
typedef struct Array
{int data;
struct Array *next;
}array,*LinkArray;
void CreateArray(LinkArray *L,int n)
{
  LinkArray q,p;
  *L=(LinkArray)malloc(sizeof(array));
  (*L)->next=NULL;/*先建立一个带头接点的单链表*/
  p=*L;
  for(int i=1;i<=n;++i)
  {   memset(change,0,1);
   q=(LinkArray)malloc(sizeof(array));
  if(!q)
  {exit(1);}
  else
  {
   fscanf(stream,"%s",change);
      q->data=atoi(change);
   p->next=q;
      p=p->next;
  }
  }
  p->next=NULL;
}
int DestroyArray(LinkArray *L)
{
LinkArray q;
while(*L)
{q=(*L)->next;
free(*L);
*L=q;
}
return 1;
}
void main()
{
LinkArray L,p;
    int arraytotal,sum(0),arraylength(0);
    memset(change,0,1);
    fscanf(stream,"%s",change);
    arraytotal=atoi(change);
    for(int i=1;i<=arraytotal;++i)
{  
    memset(change,0,1);
    fscanf(stream,"%s",change);
       arraylength=atoi(change);
       CreateArray(&L,arraylength);
       p=L->next;
    for(int j=1;j<=arraylength;j++)
   {
  sum+=p->data;
        p=p->next;
   }
      printf("%d/n",sum);
   DestroyArray(&L);
   sum=0;
}
fclose(stream);
  
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值