1. 程式人生 > >C語言學習歷程(七)課堂小程式

C語言學習歷程(七)課堂小程式

上課時老師叫我們程式設計的兩個程式,分別是進位制轉換和字串移位:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int num,level;
    printf("請輸入數字和進位制:\n");
    scanf("%d %d",&num,&level);

    int sum,i;
    if((num % 10) < 0 ||(num % 10) >= level)
    {
        printf("請輸入正確的數字\n");
        return 1;
    }

    sum = num % 10;
    num /= 10;
    while(num != 0)
    {
        if((num % 10) < 0||(num % 10) >= level)
        {
            printf("請輸入正確的數字\n");
            return 2;
        }
        sum += (num % 10)*level;
        level *= level;
        num /= 10;
    }
    printf("%d\n",sum);
    return 0;
}

#include <stdio.h>
#include <string.h>

int main()
{
    int i,j,n,m;
    char str[50] = {0};
    printf("請輸入字元,(不超過50個): \n");
    scanf("%s",str);
    printf("請輸入迴圈右移0,左移1\n");
    scanf("%d",&m);
    printf("請輸入迴圈移動的位數:\n");
    scanf("%d",&n);
    if(m == 0)//通過判斷標誌位m來確定是左移還是右移
    {
        for(i = 0;i < n;i++)
        {
            char temp = str[strlen(str) - 1];
            for(j = strlen(str) - 2;j >= 0;j--)
                str[j+1] = str[j];
            str[0] = temp;
        }
        printf("%s\n",str);}
    else 
        {
            for(i = 0;i < n;i++)
            {
                char temp = str[0];
                for(j = 1;j <= strlen(str) - 1;j++)
                    str[j-1] = str[j];
                str[strlen(str) - 1] = temp;
            }
        printf("%s\n",str);}
       return 0;
}