Ax_note
in parameter for show_n_char() is formal parameter
Aa_Definition function
#include <stdio.h>
#include <string.h>
#define NAME "ENOMOTHEM, INC."
#define ADDRESS "101 Beijing China"
#define PLACE "Megapolis, CA 00000"
#define WIDTH 40
#define WJXNUM 40
#define SPACE ' '
// function protype
void show_n_char(char ch, int num);
int main(void)
{
int spaces;
// function call
show_n_char('A',WJXNUM);
printf("\n");
putchar('\n');
show_n_char('*', WIDTH);
putchar('\n');
show_n_char(SPACE, 12);
printf("%s\n", NAME);
spaces = (WIDTH - strlen(ADDRESS)) / 2;
show_n_char(SPACE, spaces);
printf("%s\n", ADDRESS);
show_n_char(SPACE, (WIDTH - strlen(PLACE)) / 2);
printf("%s\n", PLACE);
show_n_char('*', WIDTH);
putchar('\n');
return 0;
}
//function definition
void show_n_char (char ch, int num)
{
int count;
for (count = 1; count <= num; count++)
putchar(ch);
}
Ab_Used return transport parameter What F*k
#include <stdio.h>
int imin(int, int);
int main(void)
{
int evil1, evil2;
printf("Enter a pair of integers (q to quit):\n");
while (scanf("%d %d", &evil1, &evil2) == 2)
{
printf("The lesser of %d and %d is %d.\n", evil1, evil2, imin(evil1, evil2));
printf("Enter a pair of integers (q to quit):\n");
}
printf("Bye.\n");
return 0;
}
int imin(int n, int m)
{
int min;
if (n < m)
min = n;
else
min = m;
return min;
}
Ac_Tail recursion and for relize factorial
Ac_a Factorial
- 0!=1
- 1×2×3×4×…×(n-2)×(n-1)×n=n!
#include <stdio.h>
long fact(int n);
long rfact(int n);
int main(void)
{
int num;
printf("This program calculatess factorials.\n");
printf("Enter a value in the range 0-12 (q to quit):\n");
while(scanf("%d", &num) == 1)
{
if (num < 0)
printf("No negative numbers, please.\n");
else if (num > 12)
printf("Keep input under 13.\n");
else
{
printf("loop: %d factorial = %ld\n", num, fact(num));
printf("recursion:%d factorial =%ld\n", num, rfact(num));
}
printf("Enter a value in the range 0-12 (q to quit):\n");
}
printf("Bye.\n");
return 0;
}
long fact(int n)
{
long ans;
for (ans = 1; n > 1; n--)
ans *= n;
return ans;
}
long rfact(int n)
{
long ans;
if (n > 0)
ans = n * rfact(n - 1);
else
ans = 1;
return ans;
}
Ad_recursion and inverted order
Ad_a Design algorithm
eg.
1. Oct 234
= 2x102+3x101+4x10^0
2. Bin 101
=1x22+0x21+1x2^0
3.5%3 = 2(1 to 2)
moda%b=a-(int)(a/b)*b
#include <stdio.h>
void to_binary(unsigned long n);
int main(void)
{
unsigned long number;
printf("Enter an integer (q to quit):\n");
while (scanf("%lu", &number) ==1)
{
printf("Binary equivalent:");
to_binary(number);
putchar('\n');
printf("Enter an integet (q to quit):\n");
}
return 0;
}
void to_binary(unsigned long n)
{
int r;
r =n % 2;
if (n >= 2)
to_binary(n /2);
putchar(r == 0 ? '0' : '1');
return;
}