int main(void){
int t,a,b,c,i;
scanf("%d",&t);
for(i=0;i<t;i++){
scanf("%d %d %d",&a,&b,&c);
if(a+b>c)
printf("Case #%d: true\n",i+1);
else printf("Case #%d: false\n",i+1);
}
return 0;
}
这个为什么会PA真是搞不懂,int范围也够了;
a+b 就不一定是 int 范围了。
方法一:据说linux kernel中有一个flex_array的实现
方法二:新建一个数组,将需要连接的数组内元素的值放到新数组中
#include <bits/stdc++.h>
#include <stdlib.h>
using namespace std;
int* ss(int *b,int size_n)
{
int num = 0;
int num_2=0;
//printf("%d\n",*b);
//cout<<"(sizeof(b)/sizeof(b[0]))"<<(sizeof(b)/sizeof(b[0]))<<endl;
for(int j=0; j<size_n; j++)
{
b[j]=b[j]+100;
cout<<b[j]<<endl;
}
int a[size_n];
int x[size_n];
for(int k =0; k<size_n; k++)
{
if(b[k]%2==0)
{
a[num]=b[k];
num++;
}
}
cout<<"num:"<<num<<endl;
for(int nn=0; nn<num; nn++)
{
cout<<"a[num]:"<<a[nn]<<endl;
}
for(int k =0; k<size_n; k++)
{
if(b[k]%5==0)
{
x[num_2]=b[k];
num_2++;
}
}
cout<<"num_2:"<<num_2<<endl;
for(int nn=0; nn<num_2; nn++)
{
cout<<"x[num_2]:"<<x[nn]<<endl;
}
int f = num+num_2;
int z[f];
///连接两个数组
for(int d =0;d<f;d++)
{
if(d<num)
{
z[d]=a[d];
}
if(d>=num)
{
z[d] = x[d-num];
}
}
for(int nn=0; nn<f; nn++)
{
cout<<"z[nn]:"<<z[nn]<<endl;
}
return z;
}
int main()
{
int a[9];
int num =0;
for(int i =11; i<20; i++)
{
a[num++] = i;
}
for(int l=0; l<num; l++)
{
cout<<"a[]"<<a[l]<<endl;
}
int *y;
y = ss(a,9);
int yy =0;
while(*y)
{
cout<<"y:"<<y[yy++]<<endl;
y+=sizeof(int);
}
return 0;
}