您的位置:首页 > 编程语言 > C语言/C++

c语言写的一些小程序

2017-05-21 17:31 651 查看
3.使用c语言编写程序,在屏幕打印 9 * 9乘法表

#include<stdio.h>

int main()
{
int i = 0;
int j = 0;
for (i = 1; i < 10; i++)
{
for (j = 1; j <= i; j++)  //注意条件的判断
{
printf("\t%d*%d =%d", i, j, i*j);//垂直制表符 用于各列对齐
}
printf("\n");
}
printf("\n");
return 0;
}

4.使用c语言编写程序,求10个整数中的最大值

#include<stdio.h>

int main()
{
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
int max = 0;
int i = 0;
for (i = 0; i < 10; i++)
{
if (max < arr[i])
{
max = arr[i];
}
}
printf("The max is %d \n", max);
return 0;
}

6.使用c语言编写程序,求100以内的所有素数(质数)

#include<stdio.h>

int main()
{
int i = 2;
int count = 0;
printf("100内的素数有:\n");
for (i = 2; i <= 100; i++)
{
int j = 2;
while (j < i)
{
if (i % j != 0)
{
j++;
}
else
{
break;
}
}
if (j >= i )
{
count++;
printf("%d ", i);
}
}

printf("\n总个数为: %d 个", count);
printf("\n");
return 0;
}

7.使用c语言编写程序,求两个数的最大公约数

#include<stdio.h>

void swap(int* m, int* n)
{
int tmp = 0;
tmp = *m;
*m = *n;
*n = tmp;
}
int main()
{
int m = 0;
int n = 0;
int r = 1;
int j = 0;
printf("请输入两个数:\n");
scanf("%d %d", &m, &n);
j = m*n;
if (m<n)
{
swap(&m, &n);
}

if (m % n == 0 && n != 0)
{
printf("最大公约数为: %d\n", n);
return 0;
}
else
{
while (m % n != 0 && n !=0)
{
r = m%n;
m = n;
n = r;
}

}
printf("最大公约数为: %d\n",r);
return 0;
}

8.使用C语言编写程序,求两个数的最小公倍数

#include<stdio.h>

void swap(int* a, int* b)
{
int tmp = 0;
if (*a < *b)
{
tmp = *a;
*a = *b;
*b = tmp;
}
}

int main()
{
int a = 0;
int b = 0;
int r = 1;
int m = 0;
printf("请输入两个数:\n");
scanf("%d %d", &a, &b);
m = a*b;
if (a < b)
{
swap(&a, &b);
}
if (a % b == 0 && b != 0)
{
if (a == b)
{
printf("a,b 的最小公倍数为:%d \n", a);
}
return 1;
}
else
{
while (a % b != 0 && b !=0)
{
r = a%b;
a = b;
b = r;
}
m = m / r;
printf("a,b 的最小公倍数为 :%d\n", m);
}

return 0;
}

9、使用c语言编写程序,交换两整数的值

#include<stdio.h>

int main()
{
int a = 2;
int b = 3;
printf("a: %d   b: %d\n", a, b);
a = a + b;
b = a - b;
a = a - b;
printf("a: %d   b: %d\n", a, b);

printf("a: %d   b: %d\n", a, b);
a = a * b;
b = a / b;
a = a / b;
printf("a: %d   b: %d\n", a, b);

printf("a: %d   b: %d\n", a, b);
a = a ^ b;  //10 ^ 11 = 01
b = a ^ b;  //01 ^ 11 = 10
a = a ^ b;  //01 ^ 10 = 11
printf("a: %d   b: %d\n", a, b);
return 0;
}

10、使用C语言编写一个函数,函数的功能是:交换两个整数的值

#include<stdio.h>
void Swap(int* s, int* p)
{
int tmp = *s;
*s = *p;
*p = tmp;
}
int main()
{
int a = 2;
int b = 3;
printf("before change:  a: %d   b: %d\n", a, b);
Swap(&a, &b);
printf("after change:   a: %d   b: %d\n", a, b);
return 0;
}

11.有1 2 3 4  四个数字,能组成多少互不相同且无重复数字的 三位数?都是多少?

程序分析:可填在百位,十位,个位的数字都是1 2 3 4 组成所有的排列后再去掉不满足条件的

#include<stdio.h>

int main()

{
int n = 0;
int m = 0;
int k = 0;
int i = 5;
int h = 5;
int l = 5;
int j = 0;
int count = 0;
int arr[100];
for (i = 1; i <= 4;i++)
{
n = i * 100;
for (h = 1; h <= 4; h++)
{
m = h * 10;
for (l = 1; l <= 4; l++)
{
k = l * 1;
arr[j] = n + m + k;
j++;
}
}
}

for (j = 0; j < 64; j++)//123
{
k = arr[j] % 10;        //个位
n = arr[j] / 100;       //百位
l = arr[j] % 100 / 10;  //十位
if (k != n && k != l && n != l )
{
count++;
printf("%d ", arr[j]);
}
}

printf("\n count : %d \n", count);
return 0;
}

12.使用C语言编写程序,在屏幕输出2000之前的所有闰年和闰年的个数

#include<stdio.h>

int main()
{
int year = 0;
int count = 0;
for (year = 1; year <= 2000; year++)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
count++;
printf("%d ", year);
}
}
printf("\n");
printf("count : %d\n", count);
printf("\n");
return 0;
}

13、写程序 求解2/1,3/2,5/3,8/5,21/13...求这个数列的前20项之和。

#include<stdio.h>

int main()
{
int m = 1;
int n = 2;
int sum = 0;
for (int i = 0; i < 20; i++)
{
sum = sum + n / m;
m = n;
n = m + n;
}
printf("sum is %d\n", sum);
return 0;
}

华氏 温度   摄氏温度  转换
#include<stdio.h>

int main()
{
float F;
float C;
printf("Please input Fahrenheit:\n");
scanf("%f", &F);
C = 5 * (F - 32) / 9;
printf("Centidegree is %.2f \n", C);
return 0;
}

#include<stdio.h>

int main()
{
int score = 0;
printf("Input score(0-100):\n");
scanf("%d", &score);
if (score < 60)
{
printf("%c\n", 'E');
return;
}
if (score >= 60 && score <= 69)
{
printf("%c\n", 'D');
return;
}
if (score >= 70 && score <= 79)
{
printf("%c\n", 'C');
return;
}
if (score >= 80 && score <= 89)
{
printf("%c\n", 'B');
return;
}
if (score >= 90 && score <= 100)
{
printf("%c\n", 'A');
return;
}
else
{
printf("Input error!\n");
}
return 0;
}

14、求解s = a+aa+aaa+……+aaa..a的值 a和n由键盘输入控制
#include<stdio.h>

int Sum(int a, int n)
{
int A = 0;
int Sum = 0;
for (int i = 1; i <= n; i++)
{
A = A * 10 + a;
Sum = Sum + A;
}
return Sum;
}

int main()
{
int a = 0;
int n = 0;
printf("Please input a and n\n");
scanf("%d %d", &a, &n);
int ret = Sum(a, n);
printf("%d\n", ret);
return 0;
}

15、一球从100米高度落下,每次反弹高度为原高度的一半;在落下,求第十次落地时,共经过多少米?第十次反弹多高?

#include<stdio.h>

int main()
{
int H = 100;
int i = H;
int n = 10;
int sum = 0;
int count = 0;
while (i)
{
count++;
i /= 2;
}
printf("总共能跳 %d 次\n", count);
while (n--)
{
sum += H;
H /= 2;

if (H == 0)
{
break;
}
}
printf("sum is %d \n", sum);
printf("H is %d \n", H);
return 0;
}

16、猴子吃桃问题:第一天摘下若干桃子,吃了一半,没过瘾,又多吃了一个,以后每天如此,到第十天时,只剩一个桃子,求总共多少桃子?
设有x个桃子,x - ((x/2+1) + ((x/2+1)/2 +1) +……+1 )= 0

#include<stdio.h>
int main()
{
int day = 9;
int sum = 1;
while (day--)
{
sum= (sum + 1) * 2;
}
printf("sum is %d\n", sum);
return 0;
}

17、求值: 1-1/2+1/3-1/4+……-1/100   ★★★

#include<stdio.h>
int main()
{
float sum = 0;
for (int i = 1; i <= 100; i++)
{
if (i % 2 != 0)
{
sum += (float)1 / i; //强转
}
else
{
sum -= (float)1 / i;
}
}
printf("sum is %f \n", sum);
return 0;
}

18、求值: !1+!2+……+!20

#include<stdio.h>

int main()
{
int n = 5;
int mul = 1;
int sum = 0;
for (int i = 1; i <= n; i++)
{
mul = 1;                        //注意每次进来mul置1
for (int j = 1; j <= i; j++)
{
mul *= j;
}
sum += mul;
}
printf("sum is %d \n", sum);
return 0;
}

19、判断一个数是不是回文数 (回文数也是一个数字,特点是正反序是同一个数字 如:1234321 1331就是回文数)
思路:因为是整数,所以可以求出该整数的翻转后的数值,看是否与原来整数相等。如果相等,则是回文数,否则不是。
翻转整数代码如下,返回值为翻转后的整数。

#include<stdio.h>

int main()
{
int a = 0;
int rev = 0;
pri
e1ad
ntf("Please input :\n");         //1、itoa() 转换为字符串
scanf("%d", &a);
int b = a;
/****************************************************************************/
//while (a != 0)
//{
//  rev = rev * 10 + a % 10;    //2、数字反转法
//  a /= 10;
//}
//if (b == rev)
//{
//  printf("是回文数!\n");
//  return 0;
//}
//printf("不是回文数!\n");
/****************************************************************************/
//比较第一位和最后一位 相等 继续比较  不相等返回
int div = 1;
while (a / div >= 10)
{
div *= 10;
}
while (a != 0)
{
int left = a / div;
int right = a % 10;     //3、数字位判断
if (left != right)
{
printf("不是回文数!\n");
return 0;
}
a = (a % div) / 10;
div /= 100;
}

printf("是回文数!\n");
/****************************************************************************/
return 0;
}

20、判断一个字符串是不是回文字符串

#include<stdio.h>
#include<string.h>
int main()
{
char s[50];
printf("Please input :\n");
scanf("%s", s);
int len = strlen(s) -1;
char* begin = s;
char* end = s + len;

while (begin <= end)
{
if (*begin != *end)
{
printf("不是回文字符串!\n");
return 0;
}
begin++;
end--;
}
printf("是回文字符串!\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: