關於練習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
**/