
两道c语言的题目,只能用C做,不要用C++,求帮忙
1.编写程序:从键盘输入一个字符串s,将s字符串中所有和前面重复多余的字符删除,其余字符保留。输出处理后的字符串。例如:输入:abadcbad输出:abdc2.余弦函数(...
1. 编写程序:从键盘输入一个字符串s,将s字符串中所有和前面重复多余的字符删除,其余字符保留。输出处理后的字符串。例如:
输入:abadcbad
输出:abdc
2. 余弦函数(cosx)的幂级数展开式为:
编写程序:
(1) 要求从控制台输入x的值,依据上述cosx的幂级数展开式,输出cosx的近似值;
(2) 要求计算结果精确到小数点后8位。
(3) 注意:不允许使用C标准函数库(math.h)中的余弦函数。 展开
输入:abadcbad
输出:abdc
2. 余弦函数(cosx)的幂级数展开式为:
编写程序:
(1) 要求从控制台输入x的值,依据上述cosx的幂级数展开式,输出cosx的近似值;
(2) 要求计算结果精确到小数点后8位。
(3) 注意:不允许使用C标准函数库(math.h)中的余弦函数。 展开
展开全部
你好,以下为这两道题的程序,供参考,希望能帮到你
1.
#include<stdio.h>
#include<string.h>
#define MAX 100
int main()
{
int i,j,k=0;
char s[MAX],a[MAX];
scanf("%s",s);
a[0] = s[0];
for(i=0;i<strlen(s);i++)
{
for(j=i+1;j<strlen(s);j++)
{
if (s[j] == ' ') continue;
else if (s[j] == s[i]) s[j] = ' ';
}
}
for(i=0;i<strlen(s);i++)
if (s[i]!=' ') s[k++] = s[i];
s[k]='\0';
printf("%s\n",s);
return 0;
}
2.
#include<stdio.h>
#include<math.h>/*fabs()*/
void main()
{
double x,c,a;
int i;
scanf("%lf",&x);
a=1;
c=a;
for(i=1;;i+=2)
{
a*=x*x*(-1)/(i*(i+1));/*相邻两项的比值*/
if(fabs(a)<1e-7)
break;
c+=a;
}
printf("cos(%g)=%.8f\n",x,c);
}
1.
#include<stdio.h>
#include<string.h>
#define MAX 100
int main()
{
int i,j,k=0;
char s[MAX],a[MAX];
scanf("%s",s);
a[0] = s[0];
for(i=0;i<strlen(s);i++)
{
for(j=i+1;j<strlen(s);j++)
{
if (s[j] == ' ') continue;
else if (s[j] == s[i]) s[j] = ' ';
}
}
for(i=0;i<strlen(s);i++)
if (s[i]!=' ') s[k++] = s[i];
s[k]='\0';
printf("%s\n",s);
return 0;
}
2.
#include<stdio.h>
#include<math.h>/*fabs()*/
void main()
{
double x,c,a;
int i;
scanf("%lf",&x);
a=1;
c=a;
for(i=1;;i+=2)
{
a*=x*x*(-1)/(i*(i+1));/*相邻两项的比值*/
if(fabs(a)<1e-7)
break;
c+=a;
}
printf("cos(%g)=%.8f\n",x,c);
}
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
int i,j,z=0;
char a[100]={0},b[100]={0};
scanf("%s",&a);
for (i=0;i<strlen(a);i++)
{
for (j=0;j<strlen(b);j++)
{
if (a[i]==b[j])
{
break;
}
}
if (j==strlen(b))
{
b[z++]=a[i];
}
}
printf("%s",b);
system("pause");
}
#include <stdlib.h>
#include <string.h>
void main()
{
int i,j,z=0;
char a[100]={0},b[100]={0};
scanf("%s",&a);
for (i=0;i<strlen(a);i++)
{
for (j=0;j<strlen(b);j++)
{
if (a[i]==b[j])
{
break;
}
}
if (j==strlen(b))
{
b[z++]=a[i];
}
}
printf("%s",b);
system("pause");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void fun(char *a,char *b)
{
char *p1=b;
char *p;
while(*a !='\0')
{
p=p1;
while(*a != *p && p <= b)
p++;
if(p > b)
*b++=*a;
a++;
}
*b='\0';
}
int main()
{
char a[100],b[100];
printf("输入:");
scanf("%s",a);
fun(a,b);
printf("输入:%s",b);
return 0;
}
第二题自己去百度吧,懒得写多项式
void fun(char *a,char *b)
{
char *p1=b;
char *p;
while(*a !='\0')
{
p=p1;
while(*a != *p && p <= b)
p++;
if(p > b)
*b++=*a;
a++;
}
*b='\0';
}
int main()
{
char a[100],b[100];
printf("输入:");
scanf("%s",a);
fun(a,b);
printf("输入:%s",b);
return 0;
}
第二题自己去百度吧,懒得写多项式
参考资料: 手打
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一题:思路:
1.取两个字符串str1和str2(str1接收键盘输入,str2存放结果)。
2.拿出str1中一个元素,并判断str2中是否存在该元素。
3.若不存在,则将其放入str2中;若存在,则啥也别做。
4.重复步骤2—3,直到str1所有元素都被访问一次。
程序代码如下:(注意结构要清晰!!模块化!)
#include<stdio.h>
#include<string.h>
#define MAX 50
int Is_exist(char *str, char ch)
//判断字符串str中是否存在字符ch,存在返回1,否则返回0
{
unsigned i;
for(i=0;i<strlen(str);i++){
if(ch==str[i])
return 1;
}
return 0;
}
void Fun(char *str1, char *str2)
//将str1中重复的字符删除,并将结果存放在str2中
{
unsigned i;
char *p = str2;
for(i=0;i<strlen(str1);i++){
if(!Is_exist(str2, str1[i])) //若str2中不存在str1[i]
*p++ = str1[i]; //将str1[i]存入str2中。
}
*p = '\0'; //字符串结束符
}
int main()
{
char str1[MAX] = {0}, str2[MAX] = {0};
gets(str1);
Fun(str1, str2);
puts(str2);
return 0;
}
第二题:思路:
本题实际上就是一个数列求和。但是你会发现余弦函数幂级数展开式直接求和是有难度的。因此我们就采用这样一种思想:a[i+1] = a[i] * a[i+1] / a[i].然后再逐项相加。如此便可以使得计算简单得多!
代码如下:
#include<stdio.h>
#include<math.h>/*使用函数fabs()*/
double Cosx(double x)
{
double temp, a;
int i = 1;
a = 1;
temp = a;
while(1)
{
a*=x*x*(-1)/(i*(i+1));/*注意技巧!!*/
if(fabs(a)<1e-7){
break;
}
temp += a;
i += 2;
}
return temp;
}
int main()
{
double x, result;
scanf("%lf",&x);
result = Cosx(x);
printf("cos(%g)=%.8f\n", x, result);
return 0;
}
1.取两个字符串str1和str2(str1接收键盘输入,str2存放结果)。
2.拿出str1中一个元素,并判断str2中是否存在该元素。
3.若不存在,则将其放入str2中;若存在,则啥也别做。
4.重复步骤2—3,直到str1所有元素都被访问一次。
程序代码如下:(注意结构要清晰!!模块化!)
#include<stdio.h>
#include<string.h>
#define MAX 50
int Is_exist(char *str, char ch)
//判断字符串str中是否存在字符ch,存在返回1,否则返回0
{
unsigned i;
for(i=0;i<strlen(str);i++){
if(ch==str[i])
return 1;
}
return 0;
}
void Fun(char *str1, char *str2)
//将str1中重复的字符删除,并将结果存放在str2中
{
unsigned i;
char *p = str2;
for(i=0;i<strlen(str1);i++){
if(!Is_exist(str2, str1[i])) //若str2中不存在str1[i]
*p++ = str1[i]; //将str1[i]存入str2中。
}
*p = '\0'; //字符串结束符
}
int main()
{
char str1[MAX] = {0}, str2[MAX] = {0};
gets(str1);
Fun(str1, str2);
puts(str2);
return 0;
}
第二题:思路:
本题实际上就是一个数列求和。但是你会发现余弦函数幂级数展开式直接求和是有难度的。因此我们就采用这样一种思想:a[i+1] = a[i] * a[i+1] / a[i].然后再逐项相加。如此便可以使得计算简单得多!
代码如下:
#include<stdio.h>
#include<math.h>/*使用函数fabs()*/
double Cosx(double x)
{
double temp, a;
int i = 1;
a = 1;
temp = a;
while(1)
{
a*=x*x*(-1)/(i*(i+1));/*注意技巧!!*/
if(fabs(a)<1e-7){
break;
}
temp += a;
i += 2;
}
return temp;
}
int main()
{
double x, result;
scanf("%lf",&x);
result = Cosx(x);
printf("cos(%g)=%.8f\n", x, result);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询