本周学习总结(C语言的简单例题)

本周的学习重点在于C语言,包括实现数字和字母金字塔、复习函数调用与形参实参概念、使用power函数以及构建单链表。函数指针的内容也得到了重新学习,仍有部分练习待周末完成。
摘要由CSDN通过智能技术生成

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语言的相关知识,重新学习了函数指针的相关内容,还有一部分未完善的练习,周末完成。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值