1樓:
實現逆轉的函式為void reversequeue(),其他的都是輔助測試所用。
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#include "math.h"
#define max 10
struct queue
que;
void initial();
int insertqueue(int n);
int delequeue();
void reversequeue();
void printq();
//該函式是為了測試逆轉函式的正確性
void testfun();
int main()
void initial()
2樓:匿名使用者
你都沒說什麼語言
bool ishuiwen(char str)if(i
else return ture;}
求大佬幫編寫一個c語言程式
3樓:匿名使用者
這個問題吧,關鍵是演算法,還有那個「利用一次關係運算結果真假算一次」,那麼每個for迴圈算不算一次?如果知道是固定8個還好,不固定的話,肯定要迴圈呼叫。我試著使用了遞迴來計算,遞迴的開頭就需要判斷一下是不是隻有1個數了,那麼這個判斷if (n==1)是否算一次?
我的思路是這樣的,取第一個數為「偽」基準值,然後把n個數分2半,兩半均等(偶數個)或前一半少1個數(奇數個)。把前半部分n個數加起來,與基準數*n進行比較,如果相等,則問題數在第2部分。否則問題數在第1部分,同時從非問題數那部分取一個數作為基準數,這樣遞迴判斷有問題的那部分,直到只有1個數了,就是問題數。
輸入:1 1 1 1 1 2 1 1
次數 基準數 需要判斷的數 比較 結果 下一次判斷
1 1 1 1 1 1 1 2 1 1 1+1+1+1 == 1*4 真 1 2 1 1
2 1 1 2 1 1 1+2 == 1*2 假 1 2
3 1 1 2 1=1*1 真 2
4 1 2 只有一個數,直接返回
這種演算法說起來,也沒啥效率,如果只有8個數的話,不用遞迴,不判斷是否只有1個數,if...then...else用3次判斷出結果即可。
因為沒啥效率,而且如果if (n==1)也算一次的話,該判斷可以改成if (a[0] == 基準數),這樣的話,如果輸入是1 1 1 1 2 1 1 1的話,第2次遞迴就能返回了。
總的來說程式很無趣,鑽題目的空子,所以源程式就不帖了。
4樓:瘋狂小鳥
#include
main()
}else
}}//當a[0]=a[1]時,說明不同的一定在a[1]之後,因此用a[1]之
//後的值逐個與a[0](或a[1])比較,直接就比較出不同的了。
//當a[0]≠a[1]時,說明不同的一定在a[0]和a[1]其中一個,因
//此用a[0]在與a[2]比較,如果a[0]=a[2],說明a[1]不同,否
//直接說明a[0]不同,因此只比較了兩次。
如圖所示,望採納。。。。。。
用指標編寫程式,用指標編寫一個程式
include include include define max 100 輸入的最大字元數為100 int main printf character total number is d n total printf upper character number is d n count upp...
投資合夥分錢演算法,問一個合夥經營的分錢演算法
你們自己已經說的清楚了啊 利潤的3 7開分嘛 你把所有的成本都刨去 剩下的利潤再分 這有什麼難的 不過責任與義務是根據出資額定的 你們既然各出50 本應平分的 但具體是他在經營 你可以讓些利給他 但是3 7開有點多了 你可以這樣做 理論上平分 但有獎金給經營的人 比如你說的 盈利5萬元 平分2萬五一...
編寫vb程式,求1編寫一個vb程式,求11213141n的值。測試資料n50答案
private sub mand1 click print 第3題 dim n as integer,s as doublen inputbox n 50 for i 1 to n s s 1 i next i print sum n format s,0.00 end sub private su...