同学,你好!我认为你总共犯了3个错误。
创新互联公司是一家业务范围包括IDC托管业务,网站空间、主机租用、主机托管,四川、重庆、广东电信服务器租用,遂宁托管服务器,成都网通服务器托管,成都服务器租用,业务范围遍及中国大陆、港澳台以及欧美等多个国家及地区的互联网数据服务公司。
1.等于号与赋值好弄混了!把if(x=0)改为if(x==0)即可
2.return没用对。return在任何函数中是在告诉机器,该函数执行结束了。所以当你进行第一次循环将结束时就遇到return,机器直接结束函数,所以就没有下文啦!
3.同学你的书写格式不好,有些地方不该加括号,有些地方要缩进,这样才能方便查阅错误。如果注意缩进了,你的第二错误就可以避免了。祝你学习C语言愉快!
一下是我用DEV-C写的,如果在TuborC下运行,请将system(“pause”);改为getch();
#include stdio.h
int main(void)
{
int repeat, ri;
double x, y;
scanf("%d", repeat);
for(ri = 1; ri = repeat; ri++){
scanf("%lf", x);
if (x==0)/*修改了*/
y=0;
else
y=1/x;
printf("f(%.2f) = %.3f\n", x, y);
}
system("pause");
return 0;/*修改了*/
}
因为分段函数需要对定义域范围进行判定,所以需要用到级联式if else语句。
标准格式:
if (条件1)
{语句组1}
else if (条件2)
{语句组2}
... ...
else //这里包括了所有不在前面提到的条件中的情况,不需要单独说明。
{}
流程图如下:
再写一个简单的例子吧,x0 -- f(x) = x x0 -- f(x) =-x ;
if (x 0)
f = x;
else
f = -x;
if(
条件1
)
f=函数表达式1;
else
if(
条件2
)
f=函数表达式2;
else
if( 条件3
)
f=函数表达式3;
....
就这样写。根据你实际的分段函数来写
#include stdio.h
int main()
{
int x,y;
printf("请输入一个X的值:");
scanf("%d",x);
if(x==0)
y=x=0;
else if(x0)
y=x=1;
else if (x0)
y=x=-1;
printf("x=%d,y=%d",x,y);
return 0;
}
//--------------------------------以上是本人根据你的意思修改的大意,添添加加而已,呵呵。
// 在这里,我指出你的错误,可以对你有很大的帮助。
//第一、if语句连续使用,只执行成功的那一个,如果后面有,就不会再执行了。
//第二、不用每次都printf("x=%d,y=%d",x,y);,在最后就可以了。以上是我修改的。我还发现你的 (x0)前面没有if 保留字。
//--------------------------------如果在你的程序上边,加几个范围标识符就可以{} 下面是第二个程序。
#include stdio.h
int main()
{
int x,y;
printf("请输入一个X的值:");
scanf("%d",x);
if(x==0)
{
y=x=0;
printf("x=%d,y=%d",x,y);
}
else if(x0)
{
y=x=1;
printf("x=%d,y=%d",x,y);
}
else if (x0)
{
y=x=-1;
printf("x=%d,y=%d",x,y);
}
return 0;
}
//还有哦,=是贬值,==是判断,你看看你的判断是=,呵呵,是错误的哦。
//2个程序的意思结果是一样的,写法不是很一样,你可以和你的对比对比,充分理解这2个程序。那么就证明你掌握啦。