前缀和是什么?
前缀和是能快速求出某段区间的元素和的一种方法
注意:前缀和的下标要从1开始,避免下标的转换
一般方法代码实现(只针对一维数组)
for(i=1;i<=b;i++)scanf("%d",&a[i]); //输入各个值,b是长度
for(i=1;i<=b;i+=)s[i]=s[i-1]+a[i]; //计算各区间值
例题
例题链接:问题 F: jz学长的机器 - OJ (jsuacm.cn)
代码实现:
#include
int main()
{
long long int a,b,c,d,i,sum; /*如果不是长整形就会导致输出超限,a代表长度,b代表输入组数,c代表左区间,d代表右区间;*/
scanf("%lld%lld",&a,&b);
long long int x[a+2],y[a+2]; //如果自己输入长度会导致输出超限
x[0]=0,y[0]=0;
for(i=1;i<=a;i++)scanf("%lld",&x[i]);
for(i=1;i<=a;i++)y[i]=y[i-1]+x[i];
while(b--)
{
scanf("%lld%lld",&c,&d);
sum=y[d]-y[c-1]; //计算区间值
sum=-sum;
printf("%lld\n",sum);
}
return 0;
}
unsigned long long类型是目前C语言中精度最高的数据类型,可以用来表示20以内的阶乘数据,20以外的自测。
输出的时候可以用“%llu”或者“%116u”
经典例题:问题 A: a*b - OJ (jsuacm.cn)
1.gets的输入分割符只有回车,因此gets是能够读入空格的。如果输入为"hello world"时,上面程序的运行结果是"hello world"。而如果用scanf则只能输出hello
2.此外,scanf和gets对待缓冲区里的回车符也是完全不同的。scanf在读取非空白符之前会忽略回车,读取之后如果遇到空白字符会停止输入,将其留着缓冲区里;gets只要一遇到回车就输入结束,并把这个回车从缓冲区里移走。
3.gets可以读取空回车,但是scanf不能。
例如输入为"\nhello\n",也就是说,先输入一个空行,然后在第二行输入"hello"并回车。scanf按照它的读取原理,把第一个’\n’作为空白符忽略掉,然后读取字符串"hello",遇到第二个’\n’时输入结束,但是第二个’\n’会被scanf残留在缓冲区里。scanf的输入结果是读入字符串"hello"。当用gets进行读取时,它遇到第一个’\n’,就找到了它的输入分隔符,停止继续输入,第一个’\n’被从缓冲区中读走了,缓冲区里剩下
(原文链接:https://blog.csdn.net/qq_42820594/article/details/82714251}
1.结构体是什么
结构体是一个自己定义的类型,其中可以包含多种类型的数据,必须使用struct定义。
2.构成
结构体由:(1)结构体标签 (2)结构体成员 (3)结构体变量组成。
struct s //s为结构体标签(相当套一个模板进去)
{
char name; //name,age,sore为结构体的成员
int age;
float sore;
}s1={"阿雨",18,60.5}; //结构体变量赋值
/*也可以是这样赋值*/
struct s //s为结构体标签
{
char name; //name,age,sore为结构体的成员
int age;
float sore;
}s1;
s s1;
s1.name="阿雨";
s1.age=18;
s1.sore=60.5; //注意这样赋值的时候一定要有'.'这个号
/*当是数组赋值时*/
struct s //s为结构体标签(相当套一个模板进去)
{
char name; //name,age,sore为结构体的成员
int age;
float sore;
}s1[3}={
{"阿雨",18,60.5},
{"阿甘",20,70},
{"阿瑶",19,85},
};
输出的时候为:
struct s
{
char name;
int age;
float sore;
}s1={"阿雨",18,60.5};
printf("%d",s1.age);
素数是一个数只能被自身和1整除的数,例如2,3,5,7
代码实现
#include
#include
#include
int main()
{
int a,s=0;
scanf("%d",&a);
for(int j=1;j<=a;j++)if(a%j==0)s++; //如果一个数能被多个3个数以上整除的数就不是素数
if(s>2)printf("不是素数");
else printf("是");
return 0;
}