编写函数nain求3!+6!+9!+12!+15!+18!+21!
时间: 2023-11-17 16:00:45 浏览: 47
int main() {
int sum = 0;
for (int i = 3; i <= 21; i += 3) {
int fac = 1;
for (int j = 1; j <= i; j++) {
fac *= j;
}
sum += fac;
}
printf("%d", sum);
return 0;
}
相关问题
请完善程序,实现以下程序功能:以下程序模拟字符串处理函数strcpy()的功能,对字符串进行复制。首先从键盘上输入一个字符串保存到数组s (最多80个字符)中,然后通过逐个字符传递的方式将数组s的内容全部复制到数组t中,最后输出数组t的内容。 输入样例: Hello world!输出样例: Hello world!. #incLude xestdio.hoint nain(void) fchar s[B1],t[81];int 1; 2分; //输入字持事存入数组s中 for(1=0; 2分:1++ t[1]= 2分: //逐个字符复制 t[i]= 2分: 2分;//输出数組t中的学符事 return 0;
请参考以下代码:
```c
#include <stdio.h>
int main(void) {
char s[81], t[81];
int i;
// 输入字符串并保存到数组s中
printf("请输入一个字符串(不超过80个字符):");
scanf("%s", s);
// 逐个字符复制到数组t中
for (i = 0; s[i] != '\0'; i++) {
t[i] = s[i];
}
t[i] = '\0'; // 给t数组最后添加一个字符串结束符
// 输出数组t中的字符
printf("复制得到的字符串为:%s\n", t);
return 0;
}
```
注意,这里使用了字符串结束符`\0`来标记字符串的结束,因为在C语言中,字符串是通过字符数组来存储的,而字符数组本身并没有保存字符串的长度信息,因此需要使用字符串结束符来标记字符串的结束位置。
int nain(uoid) int i,js char coior[5][18]- {"rea", "blue", "yeilow',"green","black" >,t[18]; For(i=0;i<4;i++) for(j=8;j<4-i;j++) if(strcnp(color[j],color[j+1])>0) {t=color[j];color[j]=color[j+1]d; color[j+1]=t;} For(i=0;i<5;i++) printf("%s\n",color[i]); return 0;该程序出现c2106错误,应该如何改正
根据您提供的代码,我发现您的程序中存在一些错误:
1. 函数名应该是 `main`,而不是 `nain`。
2. 第 3 行中的数组声明有误,应该使用大括号 `{}` 而不是中括号 `[]`。
3. 第 4 行中的 `uoid` 应该是 `void`。
4. 第 6 行中的第 4 个字符串 "green" 缺少一个双引号。
5. 第 7 行中的数组 `t` 没有指定类型,应该是 `char` 类型的数组。
6. 在第 8 行和第 9 行中,应该把字符串的长度改为 17,因为需要包括字符串末尾的空字符。
7. 在第 11 行中,应该使用 `strcmp` 函数而不是 `strcnp` 函数。
8. 在第 12 行中,应该使用 `color[j]` 而不是 `color[j]`。
9. 在第 14 行中,应该使用 `color[j+1]` 而不是 `color[j+1]d`。
经过以上修改后的代码如下:
```
#include <stdio.h>
#include <string.h>
int main(void) {
int i,j;
char color[5][18] = {"red", "blue", "yellow", "green", "black"};
char t[18];
for(i=0;i<4;i++) {
for(j=0;j<4-i;j++) {
if(strcmp(color[j],color[j+1])>0) {
strcpy(t,color[j]);
strcpy(color[j],color[j+1]);
strcpy(color[j+1],t);
}
}
}
for(i=0;i<5;i++) {
printf("%s\n",color[i]);
}
return 0;
}
```
希望对您有帮助!