用c语言 计算字符串s中每个字符的权重值并依次写入数组a,权重值是字符的位置值与该字符ASCII码值的乘积。首字符位置为1,最后一个字符的位置值为strlen(s)
时间: 2024-05-06 13:14:55 浏览: 245
C语言实验输入一个字符,找出它的前驱字符和后继字符,并按ASCII码值,按从大到小的顺序输出这3个字符及其对应的ASCII码值。
5星 · 资源好评率100%
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <string.h>
void calcWeight(char *s, int *a) {
int len = strlen(s);
for (int i = 0; i < len; i++) {
a[i] = (i + 1) * s[i];
}
}
int main() {
char s[] = "hello world";
int a[strlen(s)];
calcWeight(s, a);
for (int i = 0; i < strlen(s); i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
在calcWeight函数中,首先计算字符串的长度,然后遍历每个字符,计算权重值并存入a数组中。
在main函数中,先定义了字符串s和数组a,然后调用calcWeight函数计算权重值并输出结果。
注意,这里的数组a必须足够大,即a的长度要等于字符串s的长度,否则会出现越界访问的错误。
阅读全文