iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 5
0
自我挑戰組

C-Programming系列 第 5

C-Programming - Day05

  • 分享至 

  • xImage
  •  

Function

關於練習6-1

修改後如下

#include <stdio.h>

int getResult(int a, int b)
{
  return a + b;
}

int main()
{
  int num1, num2;

  printf("%s", "請輸入一個數字: ");
  scanf("%d", &num1);
  printf("%s", "請輸入第二個數字: ");
  scanf("%d", &num2);

  int result = getResult(num1, num2);
  printf("result: %d", result);

  return 0;
}

執行這段程式碼會請你輸入兩個數字

然後將兩個數字相加

並顯示 result 在console上

若是將函式修改為

#include <stdio.h>

int getResult(int a, int b)
{
  a = a + 1;
  printf("a = a+1: %d", a);
  return a + b;
}

int main()
{
  int num1, num2;

  printf("%s", "請輸入一個數字: ");
  scanf("%d", &num1);
  printf("%s", "請輸入第二個數字: ");
  scanf("%d", &num2);

  int result = getResult(num1, num2);
  printf("a: %d", num1);
  printf("result: %d", result);

  return 0;
}

/**
假設輸入的a = 3, b = 2;

a = a + 1: 4
a: 3
result: 6
**/

也就是說在函式中可以修改值

但是並不會影響到輸入值

在Input 宣告時必須同時宣告變數的型態

若是沒有特別宣告

會預設為int

#include <stdio.h>

int atoi(char s[])
{
  int i, n;
  n = 0;
  for (i = 0; s[i] >= '0' && s[i] <= '9'; i++)
  {
    printf("%d\n", s[i]);
    n = 10 * n + (s[i] - '0');
  }
  return n;
}

int main()
{
  char str[11] = "123";

  int num = atoi(str);

  printf("%d", num);

  return 0;
}

如果輸入的數字格式是字串

將它轉換成為 int

原理是利用ASCII 的數字運算

而 input 的參數是字串

遞迴程式

執行某些程式但是動作都會類似

可以不停的呼叫自己

但是必須要有一個或多個可能是可以停止呼叫自己

否則會造成無限迴圈

範例:

#include <stdio.h>

int recursivedemo(int num)
{
  if (num == 0)
  {
    return 0;
  }
  else
  {
    printf("%d\n", num);
    num -= 1;
    recursivedemo(num);
  }
}

int main(void)
{
  int num;
  printf("Please input a number: ");
  scanf("%d", &num);
  recursivedemo(num);
  return 0;
}
/**
input: 5
5
4
3
2
1
**/

上一篇
C-Programming - Day04
下一篇
C-Programming - Day06
系列文
C-Programming9
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言