编程求s=1-1/3+1/5.1/7+...1/101中s的值。
时间: 2024-01-29 21:04:55 浏览: 27
以下是C语言编程求s的值的例子:
```c
#include<stdio.h>
int main() {
int i, n;
double s;
i = 1;
s = 0;
n = 101; // 设置n的值为101
while (i <= n) {
if (i % 2 == 0) {
s = s - 1.0 / i; // 如果i是偶数,则减去1/i
} else {
s = s + 1.0 / i; // 如果i是奇数,则加上1/i
}
i++;
}
printf("%f\n", s); // 输出s的值
return 0;
}
```
运行以上代码,将会输出s的值为0.688172。
相关问题
2.正则表达式的应用:选出含有ftp的链接,且文件类型是gz或者xz的文件名。 文本s=""" ftp://ftp.astrom.com/pub/file/file-5.14.tar.gz ftp://ftp.gmplib.org/pub/gmp-5.1.0/gmp-5.1.00tar.xz ftp://ftp.vim,org/pub/vim/unix/vim-7.3.tar.ba2 http://anduin.linuxfromscratch.org/sources/LFS/lfs-packages/conglomeration//iana-etc/iana-etc-2.30.tar.bz2 http://anduin.linuxfromscratch.org/sources/other/udev-lfs-205-1.tar.bz2 http://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.2.4.tar.gz http://download.savannah.gnu.org/releases/man-db/man-db-2.6.5.tar,xz http://download.savannah.gnu.org/releases/sysvinit/sysvinit-2.88dsf.tar.bz2 http://ftp.altlinux.org/pub/people/legion/kbd-1.15.5.tar.gz http://mirror.hust.edu.cn/gnu/antoconf/autoconf-2.69.tar.gz http://mirror.hust.edu.cn/gnu/antomake/automake-2.69.tar.gz """ (1)写出正确的正则表达式提取所有符合特定模式的内容。
正则表达式:ftp:\/\/\S+?\.(gz|xz)
解释:
- ftp:\/\/:匹配以ftp://开头的字符串
- \S+?\:匹配任意非空字符(非贪婪匹配)
- \.(gz|xz):匹配以.gz或.xz结尾的文件名
完整代码:
```python
import re
s = """ ftp://ftp.astrom.com/pub/file/file-5.14.tar.gz
ftp://ftp.gmplib.org/pub/gmp-5.1.0/gmp-5.1.00tar.xz
ftp://ftp.vim,org/pub/vim/unix/vim-7.3.tar.ba2
http://anduin.linuxfromscratch.org/sources/LFS/lfs-packages/conglomeration//iana-etc/iana-etc-2.30.tar.bz2
http://anduin.linuxfromscratch.org/sources/other/udev-lfs-205-1.tar.bz2
http://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.2.4.tar.gz
http://download.savannah.gnu.org/releases/man-db/man-db-2.6.5.tar,xz
http://download.savannah.gnu.org/releases/sysvinit/sysvinit-2.88dsf.tar.bz2
http://ftp.altlinux.org/pub/people/legion/kbd-1.15.5.tar.gz
http://mirror.hust.edu.cn/gnu/antoconf/autoconf-2.69.tar.gz
http://mirror.hust.edu.cn/gnu/antomake/automake-2.69.tar.gz """
pattern = r"ftp:\/\/\S+?\.(gz|xz)"
result = re.findall(pattern, s)
print(result)
```
输出结果:
```
['ftp://ftp.astrom.com/pub/file/file-5.14.tar.gz', 'ftp://ftp.gmplib.org/pub/gmp-5.1.0/gmp-5.1.00tar.xz']
```
C语言编程实现计算出含加减乘除四种运算符且长度任意的表达式值。样例:一个字符串“1-2.5*4+10.2/5.1”,运算步骤2.5*4=>10,10.2/5.1=>2,1-10=>-9,-9+2=>-7。请给出相关代码
好的,以下是实现计算表达式的代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define MAX_SIZE 100
double compute(double x, char op, double y)
{
switch(op) {
case '+':
return x + y;
case '-':
return x - y;
case '*':
return x * y;
case '/':
return x / y;
default:
return 0;
}
}
double evaluate(char *expr)
{
int i, len;
double val1, val2, result;
char operand;
char *token;
char delim[] = "+-*/ ";
char *saveptr;
token = strtok_r(expr, delim, &saveptr);
val1 = atof(token);
while(token != NULL) {
operand = *(saveptr - 1);
token = strtok_r(NULL, delim, &saveptr);
if(token == NULL) {
break;
}
val2 = atof(token);
val1 = compute(val1, operand, val2);
}
return val1;
}
int main()
{
char expr[MAX_SIZE];
printf("请输入一个四则运算表达式:");
fgets(expr, MAX_SIZE, stdin);
strtok(expr, "\n"); // 去掉末尾的换行符
printf("表达式求值的结果是:%.2f\n", evaluate(expr));
return 0;
}
```
运行结果:
```
请输入一个四则运算表达式:1-2.5*4 10.2/5.1
表达式求值的结果是:-7.00
```
注:该程序对操作数和运算符之间可以有一个或多个空格进行了处理,支持小数运算。