Educoder-程序設計基礎(C語言)-簡單一重循環


第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;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM