喝汽水问题:1瓶汽水1元,2个空瓶可以换一瓶汽水,输入价钱,可以喝多少汽水。(编程实现)
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
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;
}
输出:
输入一个整数数组,实现一个函数。调整数组使奇数全部都位于偶数前面。
#define _CRT_SECURE_NO_WARNINGS 1
#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;
}
输出:
求以下代码输出:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
unsigned char a = 200;
unsigned char b = 100;
unsigned char c = 0;
c = a + b;
printf("%d %d", a + b, c);//300 44
return 0;
}
输出:300 44
求以下代码输出:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main()
{
char a[1000] = { 0 };
int i = 0;
for (i = 0; i < 1000; i++)
{
a[i] = -1 - i;
}
printf("%d", strlen(a));
return 0;
}
输出:255
打印杨辉三角形:
问:C语言 打印出来的数字格式对齐。
ChatAI答:
为了让输出的数字格式对齐,可以使用printf函数的格式控制符来实现。格式控制符的基本格式为:%[flags][width][.precision][length]specifier,其中width用于指定输出宽度,可以是一个数字表示最小宽度,如果数字不够,则会用空格填充。例如,以下代码将打印一个宽度为3的整数:
int num = 123;
printf("%3d", num);
打印结果为:
123
如果要输出多个数字,可以在格式字符串中使用多个格式控制符,这样输出的数字就会对齐:
int num1 = 123;
int num2 = 45;
printf("%3d %3d", num1, num2);
打印结果为:
123 45
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int arr[10][10] = { 0 };
int i = 0;
int j = 0;
for (i = 0; i < 10; i++)
{
for (j = 0; j < 10; j++)
{
if (j == 0)
{
arr[i][j] = 1;
}
if (i == j)
{
arr[i][j] = 1;
}
if (i >= 2 && j >= 1)
{
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
}
}
//打印
for (i = 0; i < 10; i++)
{
for (j = 0; j <= i; j++)
{
printf("%3d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
输出:
猜凶手题目:
日本某地发生了一起谋杀案,警察通过排查确定杀人凶手必为4个嫌疑人的一个。
以下为4个嫌疑犯的供词:
A说:不是我
B说:是C
C说:是D
D说:C在胡说
已知3个人说了真话,1个人说的是假话
现请根据这些信息,写一个程序来确定到底谁是凶手。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int killer = 0;
for (killer = 'a'; killer <= 'd'; killer++)
{
if ((killer != 'a') + (killer == 'c') + (killer == 'd') + (killer != 'd') == 3)
{
printf("killer=%c\n", killer);
}
}
return 0;
}
输出结果:
猜名次:
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果:
A选手说:B第二,我第三
B选手说:我第二,E第四
C选手说:我第一,D第二
D选手说:C最后,我第三
E选手说:我第四,A第一
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
int d = 0;
int e = 0;
for (a = 1; a <= 5; a++)
{
for (b = 1; b <= 5; b++)
{
for (c = 1; c <= 5; c++)
{
for (d = 1; d <= 5; d++)
{
for (e = 1; e <= 5; e++)
{
if (a*b*c*d*e == 120)
{
if (((b == 2) + (a == 3) == 1) &&
((b == 2) + (e == 4) == 1) &&
((c == 1) + (d == 2) == 1) &&
((c == 5) + (d == 3) == 1) &&
((e == 4) + (a == 1) == 1))
{
printf("a=%d b=%d c=%d d=%d e=%d\n", a, b, c, d, e);
}
}
}
}
}
}
}
return 0;
}
输出结果: