结构体
#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