C语言第25天,练习题,喝汽水 || 数组使奇数全部位于偶数的前面

结构体

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

struct S {
	int a;
	int b;
};

int main() {
	struct S a, * p = &a;
	a.a = 99;
	printf("%d\n", a.a);//99
	printf("%d\n", p->a);//99
	printf("%d\n", (*p).a);//99
	//printf("%d\n", *p.a);//error
	return 0;
}
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

struct stu {
	int num;
	char name[10];
	int age;
};

void fun(struct stu* p) {
	printf("%s\n", (*p).name);
	return;
}

int main() {
	struct stu students[3] = { {9801,"zhang",20},
		{9802,"wang",19},
		{9803,"zhao",18} };
	fun(students + 1);//wang
}

喝汽水,1瓶1元,2个空瓶可以换一瓶汽水,给n元,能喝多少汽水

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

//喝汽水,1瓶1元,2个空瓶可以换一瓶汽水,给n元,能喝多少汽水

int main() {
	int money = 0;
	int total = 0;
	int empty = 0;
	scanf("%d", &money);
	//买回来的汽水喝掉
	total = money;
	empty = money;
	//换回来的汽水
	while (empty >= 2) {
		total += empty / 2;
		empty = empty / 2 + empty % 2;
	}
	printf("total = %d\n", total);
	return 0;
}
20
total = 39

调整数组使奇数全部位于偶数的前面

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

//调整数组使奇数全部位于偶数的前面

void Print(int arr[], int sz) {
	int i = 0;
	for (i = 0; i < sz; i++) {
		printf("%d ", arr[i]);
	}
	printf("\n");
}

void move(int arr[], int sz) {
	int left = 0;
	int right = sz - 1;
	//从左边找偶数
	while (left < right) {
		while ((left < right) && (arr[left] % 2 == 1)) {
			left++;
		}
		//从右边找奇数
		while ((left < right) && (arr[right] % 2 == 0)) {
			right--;
		}
		//交换
		if (left < right) {
			int tmp = arr[left];
			arr[left] = arr[right];
			arr[right] = tmp;
		}
	}
	
}

int main() {
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	move(arr,sz);
	Print(arr, sz);
	return 0;
}
1 9 3 7 5 6 4 8 2 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值