当前位置:首页 » 编程语言 » c语言作业为什么输出错
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言作业为什么输出错

发布时间: 2022-05-12 06:56:02

c语言作业运行不出来,求指导

没有运行结果的原因是代码中存在死循环。

进入 while 循环体前,变量 t 的值为 1。循环过程中 t 的值没有改变,而循环条件是 t >= 0.0001,这个条件一直满足,所以程序不会跳出循环。程序一直卡在循环里面,自然不会执行到下面的 printf 函数。

卡循环是没有运行结果的原因。实际上代码还存在其他问题,无法计算出正确的结果:

[1] 变量 s 的类型应该是 double:格雷戈里公式中的每一项都是小数,使用整型数类型保存结果会将小数部分截断;

[2] 第 10 和 11 行的 if 语句块是不必要的:前面的代码保证变量 t 的值为 1,因此无需负数到正数的转换;

[3] 变量 t 没有迭代:代码中变量 t 的作用是每次循环自增,用以提供分母的值,而实际上在循环中没有更新 t 的值;

[4] 变量 t 和变量 s 混淆了:代码用变量 s 来表示格雷戈里公式中的每一项的值,而循环条件的判断却用了变量 t,这也是死循环的原因。同时原题中要求用 t 表示格雷戈里公式中的每一项,代码中使用了变量 s 来表示;

程序运行结果

⑵ C语言程序编译正确,但是输出错误,是什么原因

#include<stdio.h>
#include<math.h>
intmain()
{
inti,n;
doubles=0,h,f0,f1,a,b;
printf("Entern,a,b:");
scanf("%d%f%f",&n,&a,&b);
h=(b-a)/n;
f0=sqrt(4-a*a);
for(i=0;i<=n;i++)
{
a=a+h;
f1=sqrt(4-a*a);
s+=(f0+f1)/2.0;
f0=f1;
}
printf("%f ",s);

return0;
}

没问题啊。结果102.0000000

⑶ c语言为什么输出值 是错误,大神看一下是哪里错了

第一个if 改成

score<60&&score>0

⑷ c语言输出结果错误 是什么问题

程序没有问题!但是楼主的multi+1何解啊?运行结果看图

⑸ C语言编程,输出结果不对

你的分数等级没有下限,《=100,所有的都满足,进入switch后,遇到caseA就直接break了。
如第一个可以改为score》=90&&score<=100
下面的都同理。

⑹ C语言作业问题,为什么会错求大虾求解!!!

第一个程序存在以下语法问题:
1、Findmax函数返回值应该为float,即float Findmax(float a[],int m,int *n);
2、Findmax函数体中,指针变量n重复定义了,参数已经有n,函数体里面就不需要再定义了。或者是你本来想给*n赋值为0的(也应该这么做),结果误接到i的定义后面了;
3、Findmax函数的调用问题,其中数组参数只需要写数组名就行了,即Findmax(b, 10, &i);
另外,程序中定义的变量最好都初始化个值,如main函数中的i和max,赋个0初始值比较安全

第二个程序:
1、函数在调用前若没定义则要有前置声明,即在main函数前面加个void InvStr(char *s, int n);声明;
2、函数调用错误,应该为InvStr(s, n);同时s和n要先定义,如char s[128]; int n = 0;
3、InStr函数并没有用到函数的参数,而是在函数里自己又定义了个字符数组来进行操作。我想你本意应该是想通过这个函数来修改外面的字符串。大概给你修改下代码,尽量保留了你代码原味的:
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;

void InvStr(char *s, int n);//使用前要前置函数声明
void main()
{
char s[128];
InvStr(s, strlen(s));//函数的调用
printf ("%s\n",s);
system("pause");
}

void InvStr(char *s, int n)
{
char ch = 0;
char *p = NULL, *q = NULL;
gets (s);//操作的是从外面传进来的s
p = s;
q=p+strlen(p) - 1;
while (p<q)
{
ch=*p;
*p++=*q;
*q--=ch;
}
}

⑺ C语言入门编程题,帮我看看哪里错了,为什么输出失败了

main写错了,你写成了mian,改下应该就可以了

⑻ C语言程序输出错误,怎么回事

正常情况,一般都是这样

⑼ 为什么在C语言中,这个printf的输出是错误的

你这并不是强制类型转换,printf是个变参函数,而且比较“笨”,它只能识别你给他设定好的输出类型,因为你设定为%d,所以只能输出出错,5/2是结果是整数,而5.0/2是浮点数运算,结果为浮点数,所以类型不匹配。 谢谢,望采纳

⑽ C语言 为什么我的结果输出错误

printf("l=%5.2f,s=%5.2f,bs=%5.2f,v=%5.2f,zv=%5.2f\n",&l,&s,&bs,&v,&zv);这里不需要&;正确的为printf("l=%5.2f,s=%5.2f,bs=%5.2f,v=%5.2f,zv=%5.2f\n",l,s,bs,v,zv); 而且你的变量pi没有给初始值,一般编译器默认其值为0或者一个随机数