第1關:計數控制循環--偶數之和
從鍵盤輸入6個整數,計算其中大於0的偶數之和
#include <stdio.h>
#include <math.h>
int main()
{
int a, sum = 0;
for (int i = 0; i < 6; i++)
{
scanf("%d", &a);
if (a % 2 == 0 && a >= 0)
sum = sum + a;
}
printf("%d", sum);
return 0;
}
第2關:計數控制循環--求N的階乘
輸入一個的整數12>=N>0,計算其階乘值。如階乘值超過109時,則輸出“Too large!”的信息,否則輸出正確的階乘值
#include <stdio.h>
#include <math.h>
int main()
{
int n, i;
long p = 1;
scanf("%d", &n);
if (n > 12)
printf("Too large!");
else
{
for (i = 1; i <= n; i++)
p = p * i;
printf("%ld", p);
}
return 0;
}
第3關:計數控制循環--僅有兩個數碼相同的三位數
輸入兩個三個位數的整數a,b,輸出【a,b】間有且僅有兩個數字相同的數字個數
#include <stdio.h>
#include <math.h>
int main()
{
int a, b, c, d, e, i, sum = 0;
scanf("%d%d", &a, &b);
for (i = a; i <= b; i++)
{
c = i % 10;
d = i / 10 % 10;
e = i / 100;
if ((c == d || c == e || d == e) && !(c == d && d == e))
sum++;
}
printf("%d", sum);
return 0;
}
第4關:條件控制循環--找整數中指定數碼
輸入一個整數n(n>=10),如果該整數中包括了數字5或9,則輸出此數對45求余的結果,如果不包含5和9,則輸出信息:“Not include!”
#include <stdio.h>
#include <math.h>
int main()
{
int n, a, b;
scanf("%d", &n);
b = n;
do
{
a = n % 10;
n /= 10;
if (a == 5 || a == 9)
{
b = b % 45;
printf("%d", b);
break;
}
} while (a != 0);
if (a == 0)
printf("Not include!");
return 0;
}
第5關:條件控制循環--整數分段
根據整數的長度來分段重新組合生成新數。輸入多個偶數位數的整數m,將數平均分為兩段:前半段為s,后半段為t,將前后半段交換,構成一個新的整數,並輸出,不保留高位零。當輸入數據為-1時結束
#include <stdio.h>
#include <math.h>
int main()
{
int a, b, x, m, n, c;
scanf("%d", &n);
while (n != -1)
{
m = floor(log10(n) + 1);
x = pow(10, m / 2 + 1e-6);
a = n % x;
b = n / x;
c = a * x + b;
printf("%d\n", c);
scanf("%d", &n);
}
return 0;
}
/*計算機如何確定一個整數的位數?
(1)要獲得一個整數n的具體是幾位數,可利用log10和floor函數:
m = floor(log10(n)+1)
(2) 利用循環,一位位地數數:從個位數開始,一位位地將數字去掉(n/10),去掉的同時進行計數
pow()函數的參數與返回值均為double類型,使用數值方法實現的求n次方,求解結果是有誤差的。因此,在對pow()函數的返回值進行取整運算時,經常會加上一個非常小的小數,如1e-6,以保證取整結果不會比預計的值少1。
例如:
b = (int)(pow(x,y)+1e-6);
*/
第6關:計數控制循環--分數序列和
輸入:2 輸出:3.50 表示輸出序列前2項的和
#include <stdio.h>
#include <math.h>
int main()
{
float sum, c, a, b;
int i, n;
scanf("%d", &n);
a = 2;
b = 1;
sum = 0;
i = 0;
while (i < n)
{
sum = sum + a / b;
c = a;
a = c + b;
b = c;
i++;
}
printf("%0.2f", sum);
return 0;
}
第7關:條件控制循環--大小寫字母變換
從鍵盤輸入依次輸入一串英文字母,大小寫不限,將其中的大寫字母轉換成相應的小寫字母,小寫字母轉換成相應的大小字母,當輸入字符不是英文字母時,停止程序執行
#include <stdio.h>
#include <math.h>
int main()
{
char a;
scanf("%c", &a);
while (a >= 65 && a <= 122)
{
if (a <= 90)
{
a = a + 32;
printf("%c", a);
}
else
{
a = a - 32;
printf("%c", a);
}
scanf("%c", &a);
}
return 0;
}