1.求前n项阶乘和
#include"stdio.h"
long long int jiecheng(int n)
{
long long int s=1;
for(int i=1;i<=n;i++)
{
s=s*i;
}
return s;
}
long long int he(long long int n)
{
long long int s=0;
for(long long int i=1;i<=n;i++)
{
s=s+jiecheng(i);
}
return s;
}
int main()
{
long long int n;
printf("输入n\n");
scanf("%lld",&n);
long long int s=he(n);
printf("前%lld项的阶乘和为:%lld\n",n,s);
return 0;
}
2.求向量2范数
#include"stdio.h"
#include"stdlib.h"
#include"math.h"
float fanshu3(float a,float b,float c)
{
float d=pow(a*a+b*b+c*c,0.5);
return d;
}
float fanshu2(float a,float b)
{
float d=pow(a*a+b*b,0.5);
return d;
}
int main()
{
printf("选择类型:A平面向量 B空间向量\n");
char a;
switch(a=getchar())
{
case 'A':
{
float a,b;
printf("输入平面向量(a空格b)\n") ;
scanf("%f%f",&a,&b);
printf("\n平面向量(a,b)2范数为:%f",fanshu2(a,b));
break;
}
case 'B':
{
float c,d,e;
printf("输入空间向量(a空格b空格c)\n");
scanf("%f%f%f",&c,&d,&e);
printf("\n空间向量(a,b,c)的2范数为:%f",fanshu3(c,d,e));
break;
}
default:
printf("输入错了");
}
return 0;
}
3.统计0到255个数_有结束符(1)
#include"stdio.h"
#include"stdlib.h"
int *geshu(unsigned char *a)
{
int *b=(int *)malloc(256*sizeof(int));//返回数组b
for(int i=0;i<256;i++)
{
b[i]=0;
}
for(int i=0;a[i]!='\0';i++)
{
for(int k=0;k<256;k++)
if((int)(a[i]==k))
b[k]=b[k]+1;
}
return b;
}
int main()
{
unsigned char *a="aaabbc123" ;
int *s=geshu(a);
for(int i=0;i<=255;i++)
{
if(s[i]!=0)
{
printf("ASCLL码中%c有%d个\n",i,s[i]);
}
}
free(s);
return 0;
}
求0到255个数_有结束符(2)
#include"stdio.h"
#include"stdlib.h"
int *geshu(unsigned char *a)
{
int *b=(int *)malloc(256*sizeof(int));//返回数组b
for(int i=0;i<256;i++)
{
b[i]=0;
}
for(int i=0;a[i]!='\0';i++)
{
for(int k=0;k<256;k++)
if((int)(a[i]==k))
b[k]=b[k]+1;
}
return b;
}
int main()
{
unsigned char *a="aaabbc123" ;
int *s=geshu(a);
for(int i=0;i<=255;i++)
{
if(s[i]!=0)
{
printf("ASCLL码中%c有%d个\n",i,s[i]);
}
}
free(s);
return 0;
}
求0到255个数_无结束符(1)
#include"stdio.h"
#include"stdlib.h"
int *tongji(unsigned char *a,int changdu)
{
int *s=(int *)malloc(256*sizeof(int));
for(int i=0;i<256;i++)
{
s[i]=0;
}
for(int i=0;i<changdu;i++)
{
for(int j=0;j<256;j++)
{
if((int)(a[i])==j)
{
s[j]++;
}
}
}
return s;
}
void P(int *s)
{
for(int i=0;i<256;i++)
{
if(s[i]!=0)
{
printf("ASCLL码中%c(%d)有%d个\n",i,i,s[i]);
}
}
}
int main()
{
unsigned char a[]={'a','b','c','a','b','c','m','m','k','k'};
int geshu=sizeof(a)/sizeof(unsigned char);
int *b=tongji(a,geshu);
P(b);
free(b);
return 0;
}
求0到255个数_无结束符(2)
#include"stdio.h"
#include"stdlib.h"
int *tongji(unsigned char *a,int changdu)
{
int *s=(int *)malloc(256*sizeof(int));
for(int i=0;i<256;i++)
{
s[i]=0;
}
for(int i=0;i<changdu;i++)
{
for(int j=0;j<256;j++)
{
if((int)(a[i])==j)
{
s[j]++;
}
}
}
return s;
}
void P(int *s)
{
for(int i=0;i<256;i++)
{
if(s[i]!=0)
{
printf("ASCLL码中%c(%d)有%d个\n",i,i,s[i]);
}
}
}
int main()
{
unsigned char a[]={'a','b','c','a','b','c','m','m','k','k'};
int geshu=sizeof(a)/sizeof(unsigned char);
int *b=tongji(a,geshu);
P(b);
free(b);
return 0;
}