题一:喝水问题,一块钱可以换1瓶水,2个空瓶可以换1瓶水,给你对应的钱数求能喝的水数:
int main() { int money = 0;//钱 int total = 0;//喝水瓶 int empty = 0;//空瓶 scanf("%d", &money); total += money; empty += total; while (empty > 1) { total += empty/2; empty = empty / 2 + empty % 2; } printf("%d", total); return 0; }
当然也可以另一种方法,我们可以发现一个规律,喝水数是2monney-1瓶,可以按这个直接写公式。
题二:给你一个数组,如何让奇数排在前面,偶数排在后面?
//奇数在前面 偶数在后面 void print(int arr[], int sz) { for (int i = 0; i < sz; i++) { printf("%d", arr[i]); } printf("\n"); } void move(int* left, int sz) { int* right = left + sz - 1; while (left < right) { while (((*left) % 2 != 0) && (left < right)) //找是不是偶数 { left++; } while (((*right) % 2 == 0) && (left < right)) //找是不是奇数 { right--; } //注意都要写left<right,小心越界以及死循环 if (left < right) //交换 { int tmp = *left; *left = *right; *right = tmp; } } } int main() { int arr[10] = { 1,3,2,4,8,7,9,5,6,0 }; int sz = sizeof(arr) / sizeof(arr[0]); print(arr, sz); //打印移动前 move(arr, sz); //移动 print(arr, sz); //打印移动后 return 0; }
最后:感谢您的观看!
感谢您的支持!
如果没有关注的话就来个关注吧!你的支持是作者写作的最大动力!
谢谢!!!
作者这两天终于忙完了哈!可以继续更新啦!!!久等啦!!!