①、使用高斯方法求解:只需要套公式 n*(n+1)/2,即可一步求解出答案,所以使用高斯方法求解的時間復(fù)雜度為:O(1)
②、使用累加的方法求解:該求解方法會使用for循環(huán)的語句,循環(huán)體為:sum+=i; 因為從1累加到n,所以循環(huán)體執(zhí)行了n次,即使用累加方法求解的時間復(fù)雜度為:O(n)
#include#includevoid main()
{double sum = 0;
double n = 100000000;
double i;
clock_t start1,finish1;
clock_t start2,finish2;
double duration1;
double duration2;
printf("*********高斯方法開始計算*********\n");
start1 = clock();
sum = (1+n)*n/2;
finish1 = clock();
duration1 = (double)(finish1-start1)/CLOCKS_PER_SEC;
printf("使用高斯方法運行時間:%.3f seconds\n",duration1); //0.000s
printf("sum = %.1lf\n",sum);
printf("*********高斯方法計算結(jié)束*********\n\n");
printf("*********累加和方法開始計算*********\n");
start2 = clock();
for(i=1,sum=0;i<=n;i++){sum+=i;
}
finish2 = clock();
duration2 = (double)(finish2-start2)/CLOCKS_PER_SEC;
printf("使用累加方法運行時間:%.3f seconds\n",duration2); //0.245s
printf("sum = %.1lf\n",sum);
printf("*********累加和方法計算結(jié)束*********\n");
}
(3)運行截圖2.練習(xí)C語言補充的語法
(1)逐一驗證如下錯誤情況,并改正,請正確的測試程序粘貼到下方。fun(int r)
{double s;
s=3.14*r*r;
printf(“圓的面積是%lf”,s);
}
int fun(int r)
{double s;
s=3.14*r*r;
return s;
}
void fun(int r)
{double s;
s=3.14*r*r;
return s;
}
void fun(int r)
{double s;
s=3.14*r*r;
printf(“圓的面積是%lf”,s);
return ;
Printf(“圓的周長是%lf”,2*3.4*r);
}
正確的測試程序粘貼位置//①、修改后添加void;修改原因:原方法沒有返回值,應(yīng)寫void fun(..)
void fun(int r)
{double s;
s=3.14*r*r;
printf("圓的面積是%lf",s);
}
//②、int改為 double;修改原因:函數(shù)返回值類型為double類型
double fun(int r)
{double s;
s=3.14*r*r;
return s;
}
//③、void 改為 double;修改原因:函數(shù)返回值類型為double類型
double fun(int r)
{double s;
s=3.14*r*r;
return s;
}
//④、去掉return;原因:函數(shù)沒有返回值。之前的情況會提前結(jié)束掉函數(shù),return后面的語句不會執(zhí)行。
void fun(int r)
{double s;
s=3.14*r*r;
printf("圓的面積是%lf",s);
printf("圓的周長是%lf",2*3.4*r);
}
(2)練習(xí)指針的語法,請在此基礎(chǔ)上添加代碼修改x值為520,輸出x的值,修改x值為1314,輸出x的值,要求兩次修改值和輸出的方法不一樣。測試源程序與結(jié)果截圖#includevoid main(){int *p;
int x = 203;
p = &x;
printf("*p=%d\n",x);
printf("x=%d\n",x);
*p = 99;
printf("修改*p的值來間接操作x,x=%d\n",x);
x = 520; //直接修改int類型變量的值
printf("x = %d\n",x);
*p = 1314; //p保存的是x的地址,*p = 1314; 尋址后改變*p的值=修改x的值
printf("*p(x) = %d\n",*p);
}
結(jié)果截圖:(3)練習(xí)結(jié)構(gòu)體的語法,請在此基礎(chǔ)上添加代碼聲明學(xué)生stu變量b,并賦值自己的信息,然后輸出b的信息。測試源程序與結(jié)果截圖#include#includetypedef struct node{int num;
int score;
char name[30];
}stu;
void main(){stu a;
stu b;
a.num = 101;
a.score = 99;
strcpy(a.name,"周周");
printf("姓名:%s\n學(xué)號:%d\n成績:%d\n\n",a.name,a.num,a.score);
b.num = 128;
b.score = 100;
strcpy(b.name,"張一銘");
printf("姓名:%s\n學(xué)號:%d\n成績:%d\n\n",b.name,b.num,b.score);
}
結(jié)果截圖:(4)練習(xí)結(jié)構(gòu)體指針的語法,請在此基礎(chǔ)上添加代碼聲明學(xué)生stu指針變量c,并賦值自己的信息,然后輸出c的信息。測試源程序與結(jié)果截圖#include#include#includetypedef struct node{int num;
int score;
char name[30];
}stu;
void main(){stu *p;
stu *c;
p = (stu *)malloc(sizeof(stu));
p->num = 101;
p->score = 99;
strcpy(p->name,"周周");
printf("姓名:%s\n學(xué)號:%d\n成績:%d\n\n",p->name,p->num,p->score);
c = (stu *)malloc(sizeof(stu));
c->num = 128;
c->score = 100;
strcpy(c->name,"張一銘");
printf("姓名:%s\n學(xué)號:%d\n成績:%d\n\n",c->name,c->num,c->score);
}
結(jié)果截圖:
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧