1.从键盘输入一个整数x,输出其平方根(为整数)。
若输入数大于1000或小于等于0,则输出0,并继续接受下一个输入直至小于等于1000。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main()
{
double x;
int i = 0,y;
do
{
scanf("%lf", &x);
i++;
} while (x>1000||x<=0);
while (i > 1)
{
y = 0;
printf("%d\n",y);
i--;
}
y =pow(x,0.5);
printf("%d\n", y);
return 0;
}
2.
从键盘输入3个整数(三个数取值均在闭区间 [1,10] ), 每行输入一个
每读取一个值,程序打印出该值个数的英文星号(*)。
输入:3个整数,3行。
输出:3行星号。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int x[3];
for (int i = 0; i < 3; i++)
scanf("%d", &x[i]);
while (x[0] > 1)
{
printf("*");
x[0] = x[0] - 1;
}
printf("*\n");
while (x[1] > 1)
{
printf("*");
x[1] = x[1] - 1;
}
printf("*\n");
while (x[2] > 1)
{
printf("*");
x[2] = x[2] - 1;
}
printf("*\n");
return 0;
}
3.
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
1. 每位数字都用自身加5后的和除以10的余数代替,如1用6代替,8用3代替;如3768就转换为8213;
2. 再将第一步生成的数字的第一位和第四位交换,第二位和第三位交换。 如8213转换为3128,即为最终的加密密码。
编写程序完成数据的加密。输入:一个整数。输出:一个整数。
#include<math.h>
int main()
{
int x[4],y;
scanf("%d", &y);
for (int i = 0; i < 4; i++)
x[i] =(int) (y / pow(10, 3 - i)) % (int)(pow(10, i+1));
for (int i = 0; i < 4; i++)
x[i] = (x[i] + 5) % 10;
int temp;
temp = x[0]; x[0] = x[3]; x[3] = temp;
temp = x[1]; x[1] = x[2]; x[2] = temp;
printf("%d%d%d%d\n", x[0],x[1], x[2], x[3]);
return 0;
}
4.
找出整数m到整数n (闭区间)之间的所有同构数(m<n)。
说明:一个正整数x,如果是它平方数的尾部,则称x为同构数。例如,6是其平方数36的尾部,25是其平方数625的尾部,那么6和25都是同构数。
输入:m和n两个正整数,用空格分隔。
输出:连续输出同构数,数据间用空格分隔(最后一个同构数后面无空格)。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int m, n;int t = 0;
do
{scanf("%d%d", &m, &n);}
while (m >= n);
for (int i=m; i<=n;i++)
{
int x, k, j = 10;
do
{
x = i * i; k = x % j;
if (i == k)
{
if (t > 0)//t作标志表明是第几个同构数
printf(" ");
printf("%d", i);
t++;
break;
}
j = j * 10;
} while (k <x);
}printf("\n");
return 0;
}
5.
编程判断任意一个正整数各位数字之和是奇数还是偶数。
如果和是奇数输出1,偶数输出0。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
long long int x;
int i=0;//储存各位数字之和
scanf("%lld", &x);
do
{
i =i+ x % 10;/*常见的将整数各位数字*/
x = x / 10; /*拆分的方法*/
} while (x > 0);
if (i% 2 == 0)
printf("0\n");
else
printf("1\n");
return 0;
}
6.
编程求以下级数前n项之和:
s=1-1/3+1/5-1/7+1/9-1/11+1/13-1/15+.....
输入:一个正整数n
输出:前n项和的值,超出小数点后4位的,保留到小数点后4位
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int x;
scanf("%d", &x);
float s = 0;
float i = 1, t = 0;//均定义为实数
do
{
s = s + i * 1 / (2 * t + 1);
i = i * (-1);//i表示正负
t++;
} while (t <x );
printf("%.4f", s);
return 0;
}
7.
编写程序,找出[m,n]范围内是7的倍数或带7的全部正整数(注意:如果一个是既是7的倍数又是带7的数,就输出2次,先输出倍数,再输出带7的整数,如:7 is a multiple of 7 7 contains 7)。
其中,m和n为正整数。
具体测试用例见样例的输入输出。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int m, n, i;
do
{
scanf("%d%d", &m, &n);
} while (m >= n);
i = m;
for (i; i <= n; i++)
{
if (i % 7 == 0)
printf("%d is a multiple of 7\n", i);
int o = i;
do//将i每位数字拿出与7比较
{
int x, j = 10;
x = o % 10;
if (x == 7)
{
printf("%d contains 7\n", i);
break;//必须+break否则可能多次输出同一个数
}
o = o / j;
} while (o != 0);
}
return 0;
}
8.
若三个正整数a,b,c满足 a^2+b^2=c^2,则它们是一组勾股数。(^2表示平方,a^表示a的平方)。
编写程序,求给定区间[m,n]中的勾股数的数量(设一组勾股数满足a<b<c)。
例如[1,10]中的勾股数有(3,4,5)和(6,8,10),则[1,10]中勾股数的数量为2。
输入:正整数m,n, 空格分隔
输出:[m,n]中的勾股数的数量
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int m, n, i, j, s, t=0;//t储存勾股数个数
scanf("%d%d", &m, &n);
if (m >= n)
{
int temp;
temp = n;
n = m;
m = temp;
}
for (i=m; i <=n-2; i++)//三个变量依次递增,符合勾股数的特征
{
for (j=i+1; j <= n - 1; j++)//三个正整数作为勾股数,其中三个一定都不一样大
{
for (s=j+1; s <= n; s++)
{
if (i * i + j * j == s * s)
t++;
}
}
}
printf("%d\n", t);
return 0;
}
9.
输入任意一个正整数,计算各位数字的平方和。
如:1234 则:计算1*1+2*2+3*3+4*4=30
输入:一个正整数
输出:平方和
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main()
{
long long int x, y = 0; int t=0;
int p[100] = { 0 };//数组初始化
scanf("%lld", &x);
for (int i = 0; i < 100; i++)
{
p[i] = x % 10;//将x各位数字分别储存进数组p
x = x / 10;
}
do
{
y = y + pow(p[t], 2);//y储存平方和
t++;
} while (t < 100);
printf("%d\n", y);
return 0;
}
10.
编写程序检验由三边能否构成三角形,检验方法是任意两边和均要大于第三边。
输入:三边长度(一行输入,空格分隔)
输出:如果可以构成三角形,输出YES,否则输出ERROR DATA
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//基本思路:先找到最大的一边,将其储存到a中
int main()
{
double a, b, c;
scanf("%lf%lf%lf", &a, &b, &c);
float temp;
if (a < b)
{
temp = a;
a = b;
b = temp;
if (a < c)
{
temp = a;
a = c;
c = temp;
}
}
else if (a < c)
{
temp = a;
a = c;
c = temp;
}
if (a < b + c)//比较
printf("YES\n");
else
printf("ERROR DATA\n");
return 0;
}