Runtime error不知道怎么写,求解Description计算1+2+3+...+n的值。(0n360)Input第一行是测试数据的个数
Runtime error不知道怎么写,求解
Description
计算1+2+3+...+n的值。(0<=n<=360)
Input
第一行是测试数据的个数。从第二行开始,每行一个n。
Output
输出一个Case <序号>:和求得的数值。
Sample Input
3
2
10
100
Sample Output
Case 1:3
Case 2:55
Case 3:5050
- C/C++ code
/* Note:Your choice is C IDE */#include "stdio.h"void main(){ int num,i,n,s[3],j; scanf("%d",&num); for(i=0;i<num;i++) { s[i]=0,j=0; scanf("%d",&n); while(j<n+1) { s[i]=s[i]+j; j++; } } for(i=0;i<num;i++) { printf("\n"); printf("Case %d ",i+1); printf("%d ",s[i]); } }[解决办法]
LZ不能把s[3]这个存储结果的数组大小写死,否则则只能输入三个数据了
应该这样int* s;
然后根据num的大小动态分配s的空间
s = (int*)malloc(sizeof(int) * num);
前提是包含
<MALLOC.H>头文件
[解决办法]
LZ, gcc4.2你的代码无任何问题;
但是只能输入最多3个值来计算而已
[解决办法]
累加是有公式的
[解决办法]
[解决办法]
#include<iostream>
using namespace std;
int main()
{
int num;
cout<<"请输入要计算多少次:"<<endl;
cin>>num;
int *p=(int *)malloc(sizeof(int)*num);
cout<<"请输入num个数:"<<endl;
for(int j=0;j!=num;j++)
{
cin>>p[j];
}
int *sum=(int *)malloc(sizeof(int)*num);
for(j=0;j!=num;j++)
{
sum[j]=0;
cout<<"Case"<<" "<<j+1<<":";
for(int i=1;i<=p[j];i++)
{
sum[j]+=i;
}
cout<<sum[j]<<endl;
}
return 0;
[解决办法]
- C/C++ code
void main(){ int num; int i = 0; int n; cin >> num; while (i<num) { cin >> n; cout << n*(n+1)/2 << endl;; i++; }}
[解决办法]
1+2+3+...+n = n*(n+1)/2自己套公式呗,哪有那么麻烦,数学都白学了 