⑴ 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或者一個隨機數