mian函數(shù)是程序執(zhí)行的入口點,即從main函數(shù)開始執(zhí)行。不要求寫,那說明已經(jīng)為你寫好了,你只用寫其他部分東西,例如一些其他被調(diào)用的函數(shù)。
創(chuàng)新互聯(lián)專注于崇川網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供崇川營銷型網(wǎng)站建設,崇川網(wǎng)站制作、崇川網(wǎng)頁設計、崇川網(wǎng)站官網(wǎng)定制、小程序制作服務,打造崇川網(wǎng)絡公司原創(chuàng)品牌,更為您提供崇川網(wǎng)站排名全網(wǎng)營銷落地服務。
計算機等級考試就是這種形式,
這屬于C編譯器的問題。C編譯器將main()視為程序的入口標號,因為ISO對C語言標準化的關(guān)系,使得開發(fā)出的編譯器也必須遵守ISO標準。 當然如果你自己能寫C編譯器,把入口函數(shù)改為其它也是可行的,只不過不能被國際所認同。
#includeiostream
#includemath.h
using namespace std;
int add(int object1,int object2)
{
if(object20)
for(int i=0;iobject2;i++) object1++;
else
for(int i=0;iabs(object2);i++) object1--;
return object1;
}
int del(int object1,int object2)
{
if(object20)
for(int i=0;iobject2;i++) object1--;
else
for(int i=0;iabs(object2);i++) object1++;
return object1;
}
int multiply(int object1,int object2)
{
int temp=abs(object1);
int flag=0;
if(object10object20 ||object10object20) flag=1;
for(int i=0;iabs(object2)-1;i++)
object1=add(abs(object1),temp);
if(flag==1) return del(object1,multiply(object1,2));
return object1;
}
int divide(int object1,int object2)
{
int temp=abs(object2);
int count=0;
int flag=0;
if(abs(object1)abs(object2)) return 0;
if(object10object20 ||object10object20) flag=1;
do{
count++;
object2=add(abs(object2),temp);
}while(abs(object2)=abs(object1));
if(flag==1) return del(count,multiply(count,2));
return count;
}
int main()
{
int object1,object2;
cout"請輸入操作數(shù)一:";
cinobject1;
cout"請輸入操作數(shù)二:";
cinobject2;
cout"("object1")+("object2")="add(object1,object2)endl;
cout"("object1")-("object2")="del(object1,object2)endl;
cout"("object1")*("object2")="multiply(object1,object2)endl;
cout"("object1")/("object2")="divide(object1,object2)endl;
}
覺得C++這樣寫很復雜呀,你自己看著再改改吧`
什么叫不用自定義函數(shù)寫Hanoi?是不是就是非遞歸寫法。。可是可以實現(xiàn),就是這樣做時間復雜度和空間復雜度都和原來的用遞歸寫的一樣,而且還更加難以看懂得了。我還是給你寫一份吧。。。。#include stdio.h
#include stdlib.h
#define N 4
int count = 1;
int ldx(int, int);
void MoveHanoi(int, char, char);
void Hanoi(char, char, char);
int main()
{
char a = 'A',b = 'B',c = 'C';
Hanoi(a, b, c);
return 0;
}
int ldx(int a,int x)
{
int sum = 1;
for (; x 0; x--)
{
sum *= a;
}
return sum;
}
void MoveHanoi(int j, char ch1, char ch2)
{
printf("%d (%c,%c)%d\n", j, ch1, ch2, count++);
}
void Hanoi(char a,char b,char c)
{
int n = 1,j = 1;
char temp;
if (!(N % 2))
{
temp = b;
b = c;
c = temp;
}
while (n ldx(2,N))
{
j = 1;
while (j = N)
{
if (n % ldx(2,j) == ldx(2,j-1))
{
if (j % 2 == 1)
{
if (n % (3 * ldx(2,j)) == ldx(2,j-1))
{
MoveHanoi(j,a,c);
break;
}
if (n % (3 * ldx(2,j)) == 3 * ldx(2,j-1))
{
MoveHanoi(j,c,b);
break;
}
if (n % (3 * ldx(2,j)) == 5 * ldx(2,j-1))
{
MoveHanoi(j,b,a);
break;
}
j++;
}
else
{
if (n % (3 * ldx(2,j)) == ldx(2,j-1))
{
MoveHanoi(j,a,b);
break;
}
if (n % (3 * ldx(2,j)) == 3 * ldx(2,j-1))
{
MoveHanoi(j,b,c);
break;
}
if (n % (3 * ldx(2,j)) == 5 * ldx(2,j-1))
{
MoveHanoi(j,c,a);
break;
}
j++;
}
}
else j++;
}
n++;
}
}
//以上都是非遞歸寫的,看起來相當?shù)穆闊?,我這個人比較啰嗦,雖然你不想有遞歸的,但是我看你給的是50分,我還是再給你附一份用遞歸寫的Hanoi吧。。。。#includestdio.hvoid move(char x,char y)
{
printf("%c--%c\n",x,y);
}void hanoi(int n,char one,char two,char three)
{
if(n==1)
move(one,three);
else
{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}int main()
{
int n;
scanf("%d",n);
hanoi(n,'A','B','C');
return 0;
}//我分析一下。兩份代碼的時間復雜度都很高是2的n次方,也就是說,計算到大概30的樣子就已經(jīng)非常的。。。慢了。而且我個人還是推薦你理解第二份遞歸程序。因為遞歸是非常有用的方法,遞歸、回溯、DFS。。。。。。。扯遠了。。。。
為什么不能用?可以用sqrt(sqrt(x))的方式,sqrt是開平方根函數(shù),用兩次就是開四次方
網(wǎng)頁名稱:c語言不用編寫的函數(shù) c語言必須有函數(shù)嗎
分享URL:http://muchs.cn/article42/docojhc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、定制開發(fā)、網(wǎng)站收錄、品牌網(wǎng)站設計、網(wǎng)站設計公司、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)