问题 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);
}
已知有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);
}