大一C语言问题请教

来源:百度知道 编辑:UC知道 时间:2024/05/20 12:10:02
1、求S=2*4*6*8*…*34
#include<stdio.h>
void main()
{
long double s,i=1;
s=2;
for(;s<34;)
{i=i*s;s=s+2;}

printf("%d\n",i);
}
我自己不管怎么改,要不就是出现负数,要不就与计算器算出来的相差太大了,计算器算出来是20位。。

2、使用循环编写以下图案,要求用户输入排数。
* * * *
* * *
* *
*
这个我跟本不知道怎么用循环写char类型的程序,还有 一个就是如果用户要你输出N个3的程序,会不会用到数学模型10^n*(3/9)?

3、使用二分迭代法求方程f(x)=2x^3-4x^2+3x-7=0的实根,直到 |Xn-Xn-1|<10^(-6)为止,n和n-1都为下标。

求求各位大哥了,小弟实在不知道怎么办了。。只有这点分了,希望各位体谅下,谢谢了!
对不起,2题的格式好像有点问题:
问题是要求用户输入多少排,输出:
*_*_*_*_*
_*_*_*_*_
__*_*_*__
___*_*___
____*____
前面和中间后面的都是空格

还有就是问下4楼的第1题为什么要用int main这个和void main有什么区别?
还有就是在输出的时候用printf("%.0f",?);就可以不用输出小数了,但是好像要四舍五入

第一个问题:
#include<stdio.h>
int main()
{
double s=1.0;/*必须定义一个双精度的变量,你要知道结果可不是以个小数字呀 */
int i=2;
while(i<=34)
{
s=s*i;
i=i+2;
}
printf("%f\n",s);
return 0;
}
第2个问题:
#include<stdio.h>
#include<stdlib.h>/* 包含system()函数 */
int main()
{
int row;
int i;
printf("Enter the number of rows : ");/* 最好不要太大,我记得似乎DOS窗口的行数是25吧,所以不要输入比25大的数 */
scanf("%d",&row);
system("cls");/* 调用DOS,清除屏幕 */
while(row>0)
{
for(i=row;i>0;i--)
{
printf("*");
}
printf("\n");
row--;
}
return 0;
}
第3个问题:
首先方程只有一个实根。
因为:f(2)=-1<0;f(3)=20>0,所以方程在2和3之间必有一根。
又对函数f(x)求导得 f(x)'=6(x^2-(4/3)x+(4/9))+(1/3)恒大于0,说明函数f(x)递增,故方程有且仅有一解(实根,因为复根是成对出现的)。
接下来就是编程求解了:
#include<stdio.h>
#include&