第一题:求1000以内所有的质数。质数:只能够1和它本身整除
#include <stdio.h>
int main() {
printf("1000 以内的质数:\n");
int num = 2;
while (num <= 1000) {
int isPrime = 1;
int i = 2;
while (i * i <= num) {
if (num % i == 0) {
isPrime = 0;
break;
}
i++;
}
if (isPrime) {
printf("%d\n ", num);
}
num++;
}
return 0;
}
第二题:有1.2.3. 4 个数字, 能组成多少 重复数字的三位数?都是多少?
#include <stdio.h>
int main(int argc, const char *argv[])
{
for(int i = 1;i < 5;i++)
{
for(int j = 1;j < 5;j++)
{
for(int k = 1;k < 5;k++)
{
if(i != j && i != k && j != k )
{
printf("%d%d%d\n",i,j,k);
}
}
}
}
return 0;
}
第三题:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃 了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上 都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子 了。求第一天共摘了多少。 结果:peach=1534
#include <stdio.h>
int main(int argc, const char *argv[])
{
int num = 1;
for(int i = 1;i<10;i++)
{
num = (num + 1) * 2;
}
printf("最开始一共有%d个桃子\n",num);
return 0;
}
第四题:99乘法表
#include <stdio.h>
int main(int argc, const char *argv[])
{
for(int i = 1;i < 10;i++)
{
for(int j = 0;j < i;j++)
{
printf("%d * %d = %d\t",j+1,i,i*(j+1));
}
printf("\n");
}
return 0;
}
第五题:
完全平方数 在1万以内(不包含1万)查找整数, 该整数它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少?
b.完全平方数:完全平方指用一个整数乘以自己例如1*1,2*2,3*3等。所以 1,4,9都是完全平方数。 10不是完全平方数,因为10号开根后不是整数
开根号 sqrt(); sqrt(2)--->对2开根号 使用使用sqrt函数,需要包含:#include<math.h> 编译的时候需要加上 -lm, 例如:gcc 1.c -lm 结果:21 261 1581
#include <stdio.h>
#include <math.h>
int main(int argc, const char *argv[])
{
int num;
for(num = 0;num<10001;num++)
{
if((int)sqrt(num+100) * (int)sqrt(num+100) == (num +100) && (int)sqrt(num+100+168) * (int)sqrt(num+100+168) == (num + 100 +168))
{
printf("该数是%d\n",num);
}
}
return 0;
}
第六题:
有一分数序列:211 312513815 1318 21113... 求出这个数列的前 20 项之和。 答案:结果:32.6603
ps:当前项的分子是下一项的分母,下一项的分子是当前项的分子+分母。
#include <stdio.h>
int main(int argc, const char *argv[])
{
float num = 0, fenzi = 1,fenmu = 1,temp = 0;
for(int i = 1;i<21;i++)
{
temp = fenzi + fenmu;
fenmu = fenzi;
fenzi = temp;
num += fenzi / fenmu;
}
printf("%g",num);
return 0;
}
第七题:
从终端输入一个整数,要求将该整数进行翻转。 例如输入123,要求输出321(三百二十-) 。输入-123,要求输出-321。不考虑翻转后溢出的情况
#include <stdio.h>
int main(int argc, const char *argv[])
{
printf("请输入一个整数:\n");
int num,s_num;
scanf("%d",&num);
s_num = num<0?-num:num;
int num_bai,num_shi,num_ge;
num_bai = s_num / 100;
num_shi = s_num /10 % 10;
num_ge = s_num % 10;
if(num>0)
{
printf("%d%d%d\n",num_ge,num_shi,num_bai);
}
else
{
printf("-%d%d%d\n",num_ge,num_shi,num_bai);
}
return 0;
}
第八题:
定义一个无符号的整型数组,求数组中的最大值。 思路:int a1=10,a2=20,a3=5;两两相比,求最大值。
#include <stdio.h>
int main(int argc, const char *argv[])
{
unsigned int arr[5] = {0};
printf("请输入(5个数):\n");
for(int i = 0;i<5;i++)
{
scanf("%d",&arr[i]);
printf("%u\n",arr[i]);
}
int temp;
for(int i = 0;i<4;i++)
{
if(arr[i]>arr[i+1])
{
temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
printf("最大的数是=%d\n",arr[4]);
return 0;
}