1. 程式人生 > >初階C-1103,C語言自定義函式練習

初階C-1103,C語言自定義函式練習

title: 初階C-1103
date: 2018-11-05 23:24:13
tags: C初階

1.實現一個函式,列印乘法口訣表,口訣表的行數和列數自己指定,輸入9,輸出99口訣表,輸入12,輸出1212的乘法口訣表。

#include<stdio.h>
#include<stdlib.h>

void MultiplicationTable(int a){
	for (int i = 1; i <= a; i++){
		for (int j = 1; j <= i; j++){
			int k = 0;
			k = j*i;
			printf("%d*%d=%d ", j,i,k);
		}
		printf("\n");
	}
}

2.使用函式實現兩個數的交換。

void ChangeNum(int a, int b){
	int temp = 0;
		temp = b;
		b = a;
		a = temp;
		printf("%d,%d", a, b);
}

3.實現一個函式判斷year是不是潤年。

void  LeapYear(int a){
	if (a % 100 == 0 && a % 400 == 0){
		printf("%d is LeapYear", a);
	}
	else if (a % 4 == 0 && a % 100 != 0){
		printf("%d is LeapYear", a);
	}
	else{
		printf("Not LeapYear");
	}
}

4.實現一個函式,判斷一個數是不是素數。

void prime(int a){
	if (a == 2){
		printf("It's a prime");
	}
	else {
		for (int i = 3; i <= a; i++){
			if (a%i == 0){
				break;
			}
			printf("It's a prime");
		}
		printf("It's not a prime");
	}
}

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

#define size 5
//陣列初始化 就是定義陣列變數的同時給其中的陣列元素賦值,由於是給多個元素同時賦值
void init(){
	int arr[size] = { 20, 16, 23, 75, 95, };
	for (int i = 0; i < size; i++){
		printf("arr[%d]=%2d \n", i, arr[i]);
	}
	printf("\n");
}

void empty(){
	int arr[5] = { 20, 16, 23, 75, 95, };
	for (int i = 0; i < (sizeof(arr) / sizeof(arr[0])); i++){
		arr[i] = '\0';
		printf("arr[%d]=%2d \n", i, arr[i]);
	}
	printf("\n");
}
void reverse(){
	int temp = 0;
	int i = 0;
	int arr[5] = { 20, 16, 23, 75, 95, };
	for (i = 0; i < 3; i++){
		temp = arr[i];
		arr[i] = arr[4 - i];
		 arr[4 - i] = temp;
		 }
	for (i = 0; i < 5; i++){
		printf("arr[%d]=%2d \n",i, arr[i]);
	}
}

前4題很簡單,並沒有特別大的難度,只要掌握了計算公式,就可以算出。

第五題的思路有很多種,這是我目前想出來的一種,初始化和清空比較容易想到。關於逆置,我的方法是比較繁瑣的,要根據陣列內個數的多少來判斷i的取值範圍,當然i是可以通過sizeof()來取代的,在此我就不更換了。還有memset()這個函式可以使用,以後我將找機會將其寫出。

歡迎大家留言!我們可以一起討論