C语言编程问题

程序改错(在FOUND下的程序中找到错误并改正):
1题目:将一个字符串中的大写字母转换成小写字母。例如:输入aSdFG输出为asdfg。
#include<stdio.h>
/********FOUND*******/
bool fun(char *c)
{if(*c<='Z'&&*c>='A')*c-='A'-'a';
/*******FOUND********/
fun= c;
}
main()
/******FOUND********/
char s[81],*p=s;
gets(s);
while(*p)
{*p=fun(p);
/******FOUND*********/
puts(*p);
p++;
}
putchar('\n');
}
2题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)
#include "stdio.h"
main()
{float peven(),podd(),dcall();
float sum;
int n;
while (1)
{/*******FOUND*******/
scanf("%d",n);
if(n>1)
break;
}
if(n%2==0)
{printf("Even=");
sum=dcall(peven,n);
}
else
{printf("Odd=");
sum=dcall(podd,n);
}
printf("%f",sum);
getch();
}
float peven(int n)
{float s;
int i;
s=0;
for(i=2;i<=n;i+=2)
/*******FOUND********/
s+=1%(float)i;
return(s);
}
float podd(n)
int n;
{float s;
int i;
/*******FOUND********/
s=1;
for(i=1;i<=n;i+=2)
s+=1/(float)i;
return(s);
}
float dcall(fp,n)
float (*fp)();
int n;
{float s;
s=(*fp)(n);
return(s);
}
3.题目:给定程序MODI1.C中函数 fun 的功能是:输入两个双精度数,函数返回它们的平方和的平方根值。例如输入:22.936 和 14.121,输出为:y = 26.934415。
#include <stdio.h>
#include <conio.h>
#include <math.h>
/*******FOUND********/
double fun (double *a, *b)
{ double c;
/*******FOUND********/
c = sqr(a*a + b*b);
/******FOUND********/
return *c;
}
main ( )
{ double a, b, y;
clrscr( );
printf ( "Enter a, b : ");
scanf ("%lf%lf", &a, &b );
y = fun (&a, &b);
printf ("y = %f \n", y );
}
4题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)
#include "stdio.h"
main()
{float peven(),podd(),dcall();
float sum;
int n;
while (1)
{/******FOUND********/
scanf("%d",n);
if(n>1)
break;
}
if(n%2==0)
{printf("Even=");
sum=dcall(peven,n);
}
else
{printf("Odd=");
sum=dcall(podd,n);
}
printf("%f",sum);
getch();
}
float peven(int n)
{float s;
int i;
s=0;
for(i=2;i<=n;i+=2)
/******FOUND********/
s+=1%(float)i;
return(s);
}
float podd(n)
int n;
{float s;
int i;
/*******FOUND********/
s=1;
for(i=1;i<=n;i+=2)
s+=1/(float)i;
return(s);
}
float dcall(fp,n)
float (*fp)();
int n;
{float s;
s=(*fp)(n);
return(s);
}
5题目:给定程序MODI1.C中函数 fun 的功能是:根据整型形参 n,计算某一数据项的值。A[1]=1, A[2]=1/(1 + A[1]), A[3]=1/(1 + A[2]), …,A[n]=1/(1 + A[n-1])例如,若 n=10,则应输出:a10=0.617977。
#include <conio.h>
#include <stdio.h>
/*******FOUND********/
int fun ( int n )
{ float A=1; int i;
/*******FOUND*******/
for (i=2; i<n; i++)
/*******FOUND*******/
A = 1.0\(1+A);
return A ;
}
main( )
{ int n ;
clrscr( ) ;
printf("\nPlease enter n: ") ;
scanf("%d", &n ) ;
printf("A%d=%f\n",n, fun(n) ) ;
}

第1个回答  2020-02-14
int
a,b,c;
//思路就是简单条件语句,讨论一下情况啊
scanf("%d
%c
%d",&a,&op,&b);
//
a,b为操作数,op为操作符
if(op=='+')
c=a+b;
else
if(op=='-')
c=a-b;
else
if(op=='*')
c=a*b;
else
if(op=='/')
c=a/b;
else
{printf("error");exit(1);}
//
找不到四则运算符
printf("%d\n",c);
第2个回答  2019-07-20
//a
=
a*y;
第一次a=2*2=4.
在下面判断时候y减去1=1了。
然后1是非0条件为真。继续循环。判断时候再减1为0了。
a=5*0=0
a=1.
y=-1
再判断y--
!=
-1时候
y
成了-2
但此时条件不满足了。于是跳出while循环。最后a=1
y=-2.
第3个回答  2019-05-19
#include
void
main()
{
float
a,b,sum;
printf("输入你的腰围:");
scanf("%f",&a);
printf("输入你的体重:");
scanf("%f",&b);
sum=(a*4.15+b*0.082-76.76);
if
(sum>=20&&sum<=30)
{
if
(sum==23)
{
printf("完美身材
你太棒了!\n");
}
else
printf("身材正常
继续保持!");
}
else
{
if
(sum<20)
{
printf("你的身材偏瘦
好好吃饭哦!\n");
}
if
(sum>30)
{
printf("你的身体偏胖
需要减肥哦!");
}
}
printf("\n");
第4个回答  2019-07-28
就是判断一个字符的ASSCII码是不是在范围内
如果是,计数器加1,最后为字符串长度
大小写转换也是根据ASSCII码判断,65~90,加32;97~122,减32
代码很简单,学编程要自己多动手
第5个回答  2019-10-27
关于像这种题型
往往不需要看完整个程序
找到关键的部分
就可以填了
如这道题
从主函数看起
如果不是很理解的话
考试的时候
对于SLIST
*creatlist(char
*a)
和void
outlist(SLIST
*h)
这两个函数完全可以不看
……不多说了
等你题做多了就能理解我的话了
相似回答