1樓:王振林登峰
我只感覺到上面的程式有錯誤,但是不是死迴圈啊。
這句感覺就不對。
d%d 沒有對應的接受鍵盤輸入的變數。
for(j=0;j<5;j++)
stu1[i].tot=stu1[i].tot+stu1[i].score[j];
很明顯上面這樣輸入會造成越界。
當j=4的時候stu1[i].score[4]是沒有意義的。
printf("%s%d%d",stu1[i].score[j]);這句也不對。
根本不符合規則嗎。
乙個整型怎麼和字串對應呢,並且變數個數還對應/只是粗略的改了改,你的程式可讀性太差,而且一些很基本的常識還不夠清楚,還得好好看看基礎知識。
#include ""
#define n 5
void main()
struct student
char name[5];
int score[4];
int tot;}stu1[n],temp;
int i,j,k;
for(i=0;i=stu1[i].tot)k=j;if(k!=0)
temp=stu1[i];
stu1[i]=stu1[k];
stu1[k]=temp;}
printf("學生從高到底排序為:")
for(i=0;iprintf("學生姓名為%s",stu1[i].name);
printf("總成績%d",stu1[i].tot);}scanf("%d",i);/
2樓:xiao愚昧
for(i=0;i/這個地方輸入有誤;要想輸入name應該是。
for(i=0;iscanf("%s",&stu1[i].name);
後邊對應輸出也是有誤,並且這個。
for(i=0;istu1[i].tot=0;
for(j=0;j<5;j++)
stu1[i].tot=stu1[i].tot+stu1[i].score[j];
也不是應該巢狀使用for來輸入資料啊;
c語言程式設計問題
3樓:有柴公尺呀呀呀呀
提問怎麼改。
把replace函式提到main函式外面。
提到main函式的前面。
或者在main前面寫乙個replace函式宣告宣告報告裡面呢,還寫了呼叫時的型別是衝突的。
c語言程式設計問題
4樓:貳彤雲憑懌
我解釋下遞迴函式吧:f(6)中有f(6/2)即f(3)和printf函式,但要等f(3)執行完後才執行printf函式(輸出6),f(3)中有f(3/2)即f(1)和printf函式,但要等f(1)執行完後才執行printf函式(輸出3)
5樓:粘代卉普煦
這是個遞迴問題,fun()函式在函式體內部又呼叫了自己。
具體解法可以這樣理解:
1、執行if(x/2>0)
2、若結果為真,執行fun(x/2);,後面那句printf("%d",x);暫時不執行。
3、當執行完fun(x/2)[裡面可能還包含了fun()這樣的呼叫],再執行第2步中未執行的printf("%d",x);
舉例:fun(6);
1、執行if(6/2>0)
2、由於6/2=3,所以,執行fun(6/2),即fun(3),這時,printf("%d",x=6)這句暫時不執行,等fun(3)執行完了再執行。
3、執行fun(3),這又是乙個fun()函式,所以,仍然先判斷if(3/2>0),4、顯然,3/2=1,大於0,這時,先執行fun(1/2),printf("%d",x=3)暫不執行,等fun(1/2)執行完了再執行。
2=0,所以,不符合要求,執行printf("%d",x=1);
6、這時,fun(1/2)便執行完了,接著,需要執行剛才未執行的printf("%d",x=3)
7、printf("%d",x=3)也執行完了,需要執行剛才未執行的printf("%d",x=6)
最後,得到的結果就是136
對於main0
這個是乙個判斷條件的問題。關鍵是要看這幾個符號的結合順序。
00(x<20),左邊是真,右邊是假,&&要兩邊是真,結果才是真,所以,這個表示式的結果是假,即0
6樓:自我程式設計
1、輸入有范圍,兩個變數輸入都需要驗證,方法變數處置範圍以外,迴圈判斷輸入。
2、天數迴圈計數,日期0~6週期自增。用變數累加計數結果。
下面是演示**:
#include
int main()
int i,j,a=7,n=366,cnt=0;
while(a<0 ||a>6)
printf("請輸入a的值(0~6):"scanf("%d",&a);
while(n<0 ||n>365)
printf("請輸入n的值(0~365):"scanf("%d",&n);
for(i=0,j=a;iif(j==4) cnt++;
if(j==6) j=-1;
printf("上機次數%d次",cnt);
return 0;
7樓:嘉嘉設計師
你好,是什麼問題呢?
提問。<>
怎麼改。你是在後面宣告了乙個replace函式。在前面應用了。
把replace函式提到main函式外面。
提到main函式的前面。
或者在main前面寫乙個replace函式宣告宣告。
報告裡面呢,還寫了呼叫時的型別是衝突的。
8樓:小
這個程式不就是列印從11開始的第5個素數嗎?
c語言程式設計的問題?
9樓:網友
這個語句的末尾有乙個分號,因此後面的。
不在迴圈體內。
這裡反映了乙個重要的習慣:迴圈體始終用大括號括起來,不要省略大括號,即使只有一句。
c語言程式設計問題?
10樓:網友
假設班級人數最多200人,輸入資料時,以輸入-1代表輸入結束,如下**:
int main()
else break; }for(j=1;j<=i-1;j++)r1=r1+a[j]; r1=r1/(i-1); printf("%d %.2f",i-1,r1); for(j=1;j<=i-1;j++)printf("%d %.2f",k,r2/k); for(j=1;j<=i-1;j++)printf("%d %.
2f",m,r3/m); return 0;}
c語言程式設計問題,C語言程式設計問題?
int main printf 字母數 d n空格數 d n數字數 d n其他字元數 d n letters,space,digit,other return 0 第一個問題 無效的主要 i 100 i 100 第二個問題,到1 100奇 0 int i 1 i 1 100 i i 100 而 i ...
C語言程式設計問題,c語言程式設計問題
先while或do while輸入成績,成績放入先定義的陣列,直到輸入負數結束。然後for迴圈算出總成績,然後定義變數平均直,算出變數直。for迴圈裡套if條件低於60輸出。課本上有例子,你看呀。c語言程式設計問題 提問怎麼改。把replace函式提到main函式外面。提到main函式的前面。或者在ma...
c語言程式設計問題
d sqrt b b 4 a c 這句是最嚴重的錯誤.如果 b b 4 a c 0,就不能開方.所以上面的答案不能把這個改回來的都是錯的.還有,復根也是可以求出來的.一句無解是不負責任的.當然還應該加上一個迴圈語句,判斷a是不是等於零.下面是我的c 不是為了解答你的問題,只是希望你能瞭解這個問題需要...