祝大家新的一年幸福安康!


#include<stdio.h>
#include<string.h>
int main(int argc, char const *argv[])
{
int m = 0;
char strb[999]={0};
while (scanf("%d", &m) != EOF)
{
memset(strb, 0x00, sizeof(strb));//为每次迭代清空代码
int sum = m*m*m;
int a1= sum/m - (m - 1);
sprintf(strb, "%d", a1);
for (int i = 1; i < m; i++)
{
a1 += 2;
strcat(strb, "+");
sprintf(strb+strlen(strb), "%d", a1);//使用strlen(strb)可以计算出strb当前的长度(不包括终止字符'\0'),这样你就可以将新字符串附加到strb的末尾,而不是覆盖其他部分。如果不加上strlen(strb),那么新字符串将被附加到strb的起始位置,这可能会导致覆盖strb中的其他内容
}
printf("%s\n", strb);
}
return 0;
}下面我们来逐行解释以下代码:
int main(int argc, char const *argv[]):定义主函数,其中argc是命令行参数的数量,argv是命令行参数的数组。int m = 0;定义一个整数变量m并初始化为0。这个变量将用于存储从标准输入读取的正整数。char strb[999]={0};定义一个字符数组strb,长度为999,并初始化为0。这个数组将用于存储生成的字符串。memset(strb, 0x00, sizeof(strb));:使用memset函数将strb数组的所有元素设置为0。关于memset函数的用法,我将放在下面:
int sum = m*m*m;计算整数m的三次方,并将结果存储在变量sum中。int a1= sum/m - (m - 1);计算一个中间值并将其存储在变量a1中。sprintf(strb, "%d", a1);将变量a1的值转换为字符串并存储在strb中。for (int i = 1; i < m; i++)使用for循环,从1迭代到m-1。a1 += 2;:将变量a1的值增加2。strcat(strb, "+");:将加号"+"添加到字符串strb的末尾。以下说明strcat函数的用法:
sprintf(strb+strlen(strb), "%d", a1);将变量a1的值转换为字符串并添加到字符串strb的末尾。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int sum = 0;
for (int i = 2;n>0; i+=3) {
sum += i;
n--;
}
printf("%d", sum);
return 0;
}