第一题:求1000以内的质数。
第二题:输入4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
第三题:猴子吃桃问题
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早
上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到
第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
第四题:判断最大值 定义一个无符号的整型数组,求数组中的最大值。
#include<stdio.h>
void is_prime();//第一题
int main()
{
is_prime();
return 0;
}
void is_prime()
{
int num = 2;
printf("1-1000内的质数:\n");
for (int i = num; i < 1000; i++)
{
int flag = 0;
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 1;
break;
}
if (flag == 0)
{
printf("%d\n", i);
}
}
}
}
#include<stdio.h>
void different_three_num();//第二题
int main()
{
different_three_num();
return 0;
}
void different_three_num()
{
int num1, num2, num3, num4;
int count = 0;
printf("请输入四个数字:\n");
scanf("%d%d%d%d", &num1, &num2, &num3, &num4);
// 验证输入数字是否在0到9之间,这里简单处理
if (num1 < 0 || num1 > 9 || num2 < 0 || num2 > 9 ||
num3 < 0 || num3 > 9 || num4 < 0 || num4 > 9)
{
printf("输入数字不合法,请输入0到9之间的数字。\n");
return;
}
else
{
for (int i = 100; i <= 999; i++)
{
int bit1 = i / 100;
int bit2 = (i % 100) / 10;
int bit3 = i % 10;
if (bit1 == num1 || bit1 == num2 || bit1 == num3 || bit1 == num4 ||
bit2 == num1 || bit2 == num2 || bit2 == num3 || bit2 == num4 ||
bit3 == num1 || bit3 == num2 || bit3 == num3 || bit3 == num4)
{
printf("%d\n", i); // 注意这里需要加分号
count++;
}
}
printf("共有%d个不同的3位数。\n", count);
}
getchar(); // 读取并丢弃换行符
}
#include<stdio.h>
void monkey_eat_banana();//第三题
int main()
{
monkey_eat_banana();
return 0;
}
void monkey_eat_banana() {
printf("请输入天数:\n");
int day;
scanf("%d", &day);
int banana = 1;
for (int i = 1; i <= day; i++) {
banana = (banana + 1) * 2;
}
printf("第一天共摘了%d个桃子\n", banana);
getchar(); // 读取并丢弃换行符
}
#include<stdio.h>//第四题
int main()
{
unsigned int arr[100];
int i = 0;
int flog = 0;
unsigned num = 0;
printf("请输入一个数确定数组长度:");
scanf("%d", &i);
for (int j = 0; j < i; j++)
{
printf("请输入第%d个整数:", j + 1);
scanf("%d", &arr[j]);
}
printf("输入的数组是:");
for (int j = 0; j < i; j++)
{
printf("%d ", arr[j]);
if (num < arr[j])
{
num = arr[j];
}
}
printf("\n");
printf("数组中最大的数是:%d\n", num);
return 0;
}