1.設計一程式: 利用while、do……while 及for 迴圈,計算2+4+6+8……100
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define MAX 100
int main(){
int i,sum;
i = 2;
sum = 0;
while(i <= MAX){
sum+=i;
printf("總共%d\n",sum);
i=i+2;
}
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){
int i=2,sum=0;
do{
sum += i;
i++;
i++;
printf("總共%d\n",sum);
}while(i <=100);
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){
int i,sum=0;
for(i=2;i<=100;i=i+2){
sum +=i;
printf("總共%d\n",sum);
}
system("pause");
return 0;
}
2.除錯題
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){
int i;
printf("印出整數1~10:\n");
for( i = 1;i <= 10;i++)
printf("%d\n",i);
system("pause");
return 0;
}
3.除錯題
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define MAX 100
int main(){
int i = 1,total =0;
while(i <= 100){
total += i;
i++;
}
printf("整數1~100的總和為%d\n",total);
system("pause");
return 0;
}
4.請利用雙重for 迴圈來設計一C 程式,輸入整數n,求出1!+2!+...+n!的和
#include<stdio.h>
#include<stdlib.h>
int main(){
int sum=0,num=1,a,n;
printf("請輸入n值:");
scanf("%d",&n);
for(a=1;a<=n;a++){
num=num*a;
sum=sum+num;
}
printf("%d\n",sum);
system("pause");
return 0;
}
5.已知有一公式如下,請設計一程式可輸入k 值,求π 的近似值:
,其中k 的值越大,π 的近似值越精確。
#include<stdio.h>
#include<stdlib.h>
int main (){
float sigma = 0.0;
int n,k;
printf("請輸入k值:"2);
scanf("%d",&k);
for(n=0;n<=k;n++){
if(n%2==0)
sigma+=(float)1/(2*n+1);
else sigma+=(float)-1/(2*n+1);
}
printf("PI=%f\n",4*sigma);
system("pause");
return 0;
}
6.除錯題
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define MAX 100
int main(){
int i;
for(i = 1; i <= 5; i++){
printf("小明正在跑步...\n");
printf("小明跑完了第%d圈\n",i);
}
printf("小明跑完了!!!\n");
system("pause");
return 0;
}
7.請利用輾轉相除法與while 迴圈來設計一C 程式,來求取任意輸入
兩數的最大公因數(g.c.d)。
#include<stdio.h>
#include<stdlib.h>
int main(){
int a,b,tmp,mod;
printf("輸入兩數:");
scanf("%d %d",&a,&b);
if(a<b){
tmp=a; a=b; b=tmp; //兩數交換
}
while(b!=0){
mod= a%b;
a=b; b=mod;
}
printf("最大公因數-->%d",a);
system("pause");
return 0;
}
8.試撰寫一程式,利用for 迴圈計算
#include <stdio.h>
#include <stdlib.h>
int main(){
int i, j,sum1=0,sum2=0,sum=0;
for(i=1,j=2;i<=49;i=i+2,j=j+2){
sum+=i*i-j*j;
}
printf("sum=%d\n",sum);
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main(){
int i, j,sum1=0,sum2=0,sum=0;
for(i=1;i<=49;){
sum1+=i*i;
i=i+2; //i+=2;
}
printf("sum1=%d\n",sum1);
//---------------------------
for(i=2;i<=50;){
sum2+=i*i;
i=i+2; //i+=2;
}
printf("sum2=%d\n",sum2);
//---------------------------
sum=sum1-sum2;
printf("sum=%d\n",sum);
system("pause");
return 0;
}
9.一個數如果恰好等於它的因數之和,這個數就稱為 "完美數"(perfect
number)。例如6=1+2+3,因1、2 與3 都是6 的因數,因而6 是完美數。
試撰寫一程式,找出1000 以內的所有完美數(使用for 迴圈編寫)
#include<stdio.h>
#include<stdlib.h>
int main(){
int i,num,sum;
sum = 0;
printf("1~1000中是完美數的有:\n");
for(num = 2;num <= 1000;num++){
//求因數
for(i=1;i < num;i++){
if(num%i==0)
sum += i;
}
//完美數的判別
if(sum==num)
printf("%d\n",num);
sum = 0;
}
system("pause");
return 0;
}
10.假設有一條繩子長3000 公尺,每天剪去一半的長度,請問需要花
費幾天的時間,繩子的長度會短於5 公尺(使用while 迴圈編寫)
#include<stdio.h>
#include<stdlib.h>
int main(){
int a =3000,b=0;
while(a >= 5){
a=a/2;
b++;
printf("第%d天,剩下%d公尺\n",b,a);
}
printf("需要%d天\n",b);
system("pause");
return 0;
}
11.試利用do while迴圈找出最小的n值,使得1+ 2 + 3+ ...+ n的總和大於等於1000
#include<stdio.h>
#include<stdlib.h>
int main(){
int a,sum;
a=0;
sum=0;
do{
a++;
sum+=a;
printf("第%d次等於%d\n",a,sum);
}while(sum<=1000);
printf("需要到%d\n",a);
system("pause");
return 0;
}
12.試利用巢狀迴圈撰寫出一個能產生如下圖結果的程式
1
12
123
1234
12345
#include<stdio.h>
#include<stdlib.h>
int main(){
int i,j;
for(i=1;i<=5;i++){
for(j=1;j<=i;j++){
printf("%d",j);
}
printf("\n");
}
system("pause");
return 0;
}
13.試撰寫一程式,利用break 敘述來撰寫4個數字之密碼輸入的過程。使用者有三次的輸入機會,並須滿足下列的條件:
如果密碼輸入不對,則會再次的出現 "請輸入密碼:" 字串。
如果三次的輸入都不對,則程式會印出 "密碼輸入超過三次!!" 字串,
然後結束程式的執行。
如果輸入正確,則印出"密碼輸入正確,歡迎使用本系統!!" 字串。
#include<stdio.h>
#include<stdlib.h>
int main(){
int input,cnt,passwd;
cnt = 0;
passwd = 6128;
while(1){
printf("請輸入密碼:");
scanf("%d",&input);
cnt++;
if(input==passwd){
printf("密碼輸入正確,歡迎進入使用本系統!!!");
break;
}
if(cnt >= 3){
printf("輸入密碼錯誤超過三次!!無法進入系統!!");
break;
}
}
system("pause");
return 0;
}
14.試利用continue敘述,找出小於100的整數裡,所有可以被2與3整除,但
不能被12整除的整數
#include<stdio.h>
#include<stdlib.h>
//小於 100 的正整數
int main() {
int i;
for (i=1; i < 100; i++) {
if (i%12==0)
continue;
if (i%2!=0)
continue;
if (i%3!=0)
continue;
printf("%d\n",i);
}
system("pause");
return 0;
}
15.設計程式,顯示以下結果。提: 使用 for迴圈
#include<stdio.h>
#include<stdlib.h>
int main(){
int i,j;
for(i=1;i<=4;i++){
printf("%*s",i," ");
for(j=1;j<=(5-i)*2-1;j++)
printf("*");
printf("\n");
}
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int main(){
int i,j;
for(i=4;i>0;i--){
printf("%*s",i," ");
for(j=1;j<=(5-i)*2-1;j++)
printf("*");
printf("\n");
}
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int main(){
int i,j;
for(i=4;i>1;i--){
printf("%*s",i," ");
for(j=1;j<=(5-i)*2-1;j++)
printf("*");
printf("\n");
}
for(i=1;i<=4;i++){
printf("%*s",i," ");
for(j=1;j<=(5-i)*2-1;j++)
printf("*");
printf("\n");
}
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int main(){
int i,j;
for(i=1;i<=3;i++){
printf("%*s",i," ");
for(j=1;j<=(5-i)*2-1;j++)
printf("*");
printf("\n");
}
for(i=4;i>0;i--){
printf("%*s",i," ");
for(j=1;j<=(5-i)*2-1;j++)
printf("*");
printf("\n");
}
system("pause");
return 0;
}
16.設計程式,顯示以下結果。提: 使用 雙重 for迴圈
#include<stdio.h>
#include<stdlib.h>
int main() {
int a,b;
for(a=1;a <= 5;a++){
for(b=1;b <= a;b++)
printf("*");
printf("\n");
}
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int main() {
int a,b,c,d;
c = 5;
for(a=1;a <= 5;a++){
for(b=1;b < a;b++)
printf(" ");
for(d=1;d<=c;d++)
printf("*");
c--;
printf("\n");
}
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int main() {
int a,b,c;
c = 5;
for(a=1;a <= 5;a++){
for(b=1;b <= c;b++)
printf("*");
c--;
printf("\n");
}
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int main() {
int a,b,c,d;
c = 5;
for(a=1;a <= 5;a++){
for(b=1;b < c;b++)
printf(" ");
for(d=1;d<=a;d++)
printf("*");
c--;
printf("\n");
}
system("pause");
return 0;
}
17.使用 雙重 forforfor迴圈與 if 來設計一程式:
#include<stdio.h>
#include<stdlib.h>
int main(){
int i,j;
for(i=1;i<=9;i++){
for(j=1;j<=9;j++){
if(i==j||j==(10-i))
printf("*");
else
printf(" ");
}
printf("\n");
}
system("pause");
return 0;
}
沒有留言:
張貼留言