题目:
代码:
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
using namespace std;
char a[40000];
char c[6];
int b[11];
int main()
{
int n,i,k,p;
cin >> n;
while(n--)
{
cin >> k;
memset(a,0,40000*sizeof(char));
memset(b,0,11*sizeof(int));
for(i=1;i<=k;i++)
{
sprintf(c,"%d",i);
strcat(a,c);
for(i=0;i<strlen(a);i++)
{
p=a[i]-'0';
b[p]++;
}
for(i=0;i<10;i++)
{
cout << b[i] ;
if(i!=9)
{
cout << " ";
}
}
cout << endl;
}
return 0;
}
解析:
1、开大数组要开在mian函数外,因为全局变量占用的是堆内存,局部变量占用的是栈内存,大的局部变量数组会导致栈溢出。
2、strcat()为字符串链接函数。