1.实现数字金字塔
i:行数 j:空格数 n:金字塔的层数
#include <stdio.h>
int main()
{
int n, i, j, a = 0;
scanf_s("%d", &n);
for (i = 1; i <= n; i++)//行号
{
for (j = 0; j <= n - i; j++)//空格数
printf(" ");
for (a = 1; a < i; a++)
{
printf("%d", a);
}
for (a = i; a >= 1; a--)
{
printf("%d", a);
}
printf("\n");
}
}
2.实现字母金字塔
第一个思路和数字的类似,就是比较麻烦。
#include <stdio.h>
int main()
{
int n, i, j, x, m, a = 0;
char b = 'A';
char s, z;
int y = (int)b;
scanf_s("%d", &n);
for (i = 1; i <= n; i++)//行号
{
for (j = 0; j < n - i; j++)//空格数
printf(" ");
for (a = -1; a < i - 1; a++)//从-1开始是因为下面的x 然后你那个数字不是从1开始到i+嘛所以我这里就是从-1开始到i-1
{
x = y + a + 1;
char s = (char)x;
printf("%c", s);
}
for (a = i - 1; a > -1; a--)
{
m = --x;
char z = (char)m;
printf("%c", z);
}
printf("\n");
}
}
第二个思路 直接用字符型。
#include <stdio.h>
int main()
{
int i, j, k;char letter;
scanf_s("%c", &letter);
k = letter - 'A' + 1;
for (i = 0; i < k; i++)
{
for (j = 0; j < k - i; j++)
printf(" ");
for (j = 0; j <= i; j++)
printf("%c", 'A'+j);
for (j = i - 1; j >= 0; j--)
printf("%c", 'A' + j);
printf("\n");
}
}
3.复习C语言的函数调用 形参 实参等等的应用
#include <stdio.h>
long square(int p);
long factorial(int q);
int main()
{
int i;
long s = 0;
for (i = 2; i <= 3; i++)
{
s = s + square(i);
}
printf("%ld\n", s);
}
long square(int p)
{
int k;
long r;
long factorial(int q);
k = p * p;
r = factorial(k);
return r;
}
long factorial(int q)
{
long c = 1;
int i;
for (i = 1; i < q; i++)
{
c *= i;
}
return c;
}
4.利用power函数实现pow函数的功能
#include <stdio.h>
int power(int a, int b);
int main()
{
int x, y,d;
scanf_s("%d%d", &x, &y);
d=power(x,y);
printf("%d", d);
}
int power(int a, int b)
{
int c=1,i;
for(i=1;i<=b;i++)
c *= a;
return c;
}
5.C语言完成创建一个单链表
#include <stdio.h>
#include <stdlib.h>
typedef struct LIST {
int m_value;
LIST* m_next;
}list;
list* InitList(list* head);
void Display(list* head);
void DestoryList(list* head);
int main(void) {
list* head = NULL;
head = InitList(head);
Display(head);
DestoryList(head);
return 0;
}
list* InitList(list* head) {
int data;
list*b = NULL;
list* a = NULL;
scanf_s("%d", &data);
while (data != 0) {
b = (list *)malloc(sizeof(list));
b->m_next = NULL;
if (head == NULL) {
a = head = b;
}
a->m_next = b;
a = b;
b->m_value = data;
scanf_s("%d", &data);
}
a->m_next = NULL;
return head;
}
void Display(list* head) {
list* node = head;
while (node != NULL) {
printf("%d ", node->m_value);
node = node->m_next;
}
}
void DestoryList(list* head) {
list*a = head;
head = head->m_next;
while (head != NULL) {
free(a);
a = head;
head = head->m_next;
}
free(a);
}
本周复习了C语言的相关知识,重新学习了函数指针的相关内容,还有一部分未完善的练习,周末完成。