1. 程式人生 > >C語言_自定義函式使用用例

C語言_自定義函式使用用例

1 . 實現一個函式,列印乘法口訣表,口訣表的行數和列數自己指定

輸入9,輸出9*9口訣表,輸出12,輸出12*12的乘法口訣表。 
#include<stdio.h>
int main()
{
    int n = 0;
    int j = 0;
    int k = 0;
    printf("輸入你想要的乘法表數:");
    scanf("%d", &n);
    for (k = 1; k <= n; k++)
    {
        for (j = 1; j <= k; j++)
        {
            printf
("%2d x %2d = %2d ", j, k, j*k); } printf("\n"); } return 0; }

乘法表執行結果

2 . 實現一個函式判斷year是不是閏年。

#include<stdio.h>
int judge_leap_year(int year)
{
    if ((0 == year % 4 && 0 != year % 100) || 0 == year % 400)
        return 1;
    else
        return 0;
}
int main()
{
    int
year = 0; printf("輸入年份:"); scanf("%d", &year); if (judge_leap_year(year)) printf("%d是閏年。\n", year); else printf("%d不是閏年。\n",year); return 0; }

這裡寫圖片描述

3 . 建立一個數組,

實現函式init()初始化陣列、
實現empty()清空陣列、
實現reverse()函式完成陣列元素的逆置。
要求:自己設計函式的引數,返回值。

#include<stdio.h>
#include<string.h> int init(int *arr) { int i = 0; while (i < 10) { *(arr + i) = i; i++; } return 0; } int empty(int *arr) { int i = 0; while (i < 10) { memset((arr + i), 0, sizeof(arr));//將0依次賦值給佔用記憶體為sizeof(arr),地址為arr+i的變數中。函式原型:void * memset ( void * ptr, int value, size_t num );, i++; } return 0; } int reverse(int *arr,int L) { int i = 0; while (i < L/2) { *(arr + i) = (*(arr + i)) ^ (*(arr + 9 - i)); *(arr + 9 - i) = (*(arr + i)) ^ (*(arr + 9 - i)); *(arr + i) = (*(arr + i)) ^ (*(arr + 9 - i)); i++; } return 0; } int main() { int arr[10]; int i = 0; init(arr);//初始化 printf("初始化結果。"); while (i < 10) { printf("%d", arr[i]); i++; } empty(arr);//清空陣列 printf("\n陣列清空結果。"); i = 0; while (i < 10) { printf("%d", arr[i]); i++; } init(arr);//初始化 int L = sizeof(arr) / sizeof(arr[0]); reverse(arr, L);//元素倒序 printf("\n元素倒序結果結果:"); i = 0; while (i < 10) { printf("%d", arr[i]); i++; } printf("\n"); return 0; }

這裡寫圖片描述
PS:關於陣列,可以看我的另一篇部落格《陣列初識總結》,講解了陣列入門問題,連結:這裡寫連結內容

4.猜數字。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int number = 57;
    int num = 0;
start:  scanf("%d", &num);
    if (num == number)
    {
        printf("猜對了!\n");
    }
    else if (num > number)
    {
        printf("大了,重新猜一下吧。\n");
        goto start;
    }
    else
    {
        printf("小了,重新猜一下吧。\n");
        goto start;
    }
    return 0;
}

這裡寫圖片描述

5.判斷一個數是否是素數

#include<stdio.h>
#include<math.h>
//返回-1,輸入有誤
//返回1,是素數
//返回因子,不是素數
int IsPrimeNumber(int number)
{
    if (number <= 1)//質數是大於1的自然數
        return -1;
    int rooting = (int)sqrt(number);
    for (int i = 2; i <= rooting; ++i)
    {
        if (number%i == 0)
            return i;
    }
    return 1;
}

int main()
{
    int number = 0;
    int result = 0;
    while (1)
    {
        printf("Please input a number : ");
        scanf("%d", &number);
        result = IsPrimeNumber(number);
        if (result == -1)
            printf("Input invalid.\n");
        else if (result == 1)
            printf("%d is primer.\n", number);
        else
            printf("%d isn't primer,factor is %d.\n", number,result);
    }
    return 0;
}

這裡寫圖片描述

最後:歡迎各位前來評論,提問……..