链接关系 网站层次结构企业所得税优惠政策
自幂数
题⽬描述:
写⼀个代码打印1~100000之间的所有的⾃幂数,中间⽤空格分隔。
⾃幂数是指⼀个数的位数的n次⽅等于这个数本⾝。例如,153是⾃幂数,
因为 1 ^ 3+5 ^ 3+3 ^ 3=153。
我们可以使⽤⼀个循环遍历 1~100000 并检查每个数是否为⾃幂数。
思路:
- 通过第一个while循环确定 i 为几位数(利用“/”)
- 通过第二个循环确定 i 是否为自幂数(利用“%”和“/”)
#include<stdio.h>
#include<math.h>int main()
{int i = 0;for (i = 1; i < 100001; i++){int a = i;int sum = 0;int n = 0;int b = 0;while (a){a /= 10;n++;}a = i;while (a){b = a % 10;sum += pow(b, n);a /= 10;}if (sum == i){printf("%d ",i);}}printf("\n");return 0;
}
打印菱形
题⽬描述:
输⼊⼀个整数n,打印对应2*n-1⾏的菱形图案,⽐如,输⼊7,输出如下图案,图案总共13⾏
思路:
- 将这个图案分为两部分进行打印:第一部分为 1 ~ n 行,第二部分为 n+1 ~ 2n-1 行,单独进行一个for循环
- 第一部分和第二部分又分为两个部分:打印空白以及打印 “ * ”
- 打印空白的for循环嵌套在行的循环之中,打印 “ * ”的for循环也在行的循环中
- 接着便是寻找打印的规律即可实现程序
#include<stdio.h>int main()
{int n = 0;scanf("%d",&n);int i = 0;for (i = 0; i < n; i++){int j = 0;for (j = 0; j < n - i - 1; j++){printf(" ");}for (j = 1; j <i*2+2; j++){printf("*");}printf("\n");}for (i = 0; i < n-1 ; i++){int j = 0;for (j = 1; j <i+2; j++){printf(" ");}for (j = 1; j <= ((2 * n - 3) - (2 * i)); j++){printf("*");}printf("\n");}return 0;
}
喝多少瓶汽水
题⽬描述:
⽔已知1瓶汽⽔1元,2个空瓶可以换⼀瓶汽⽔,输⼊整数n(n>=0),表⽰n元钱,计算可以多少汽
⽔,请编程实现。
#include<stdio.h>int main()
{int n = 0;scanf("%d",&n);int bottom = n;int empty = n;int a = n;while (empty !=0 && empty !=1){a = a / 2;bottom += a;empty = empty % 2 + a;a = empty;}printf("可以喝%d瓶汽水\n",bottom);return 0;
}
字符转换
题⽬描述:
输⼊⼀个字符串,将字符串中⼤写字⺟全部转为⼩写字⺟,⼩写字⺟转成⼤写字⺟,其他字符保持不变。注:字符串的⻓度小于等于30,其中字符串中包含空格。
#include<stdio.h>
#include<ctype.h>int main()
{char str[30] = "";scanf("%[^\n]s", str);char* str1 = str;while (*str1){if (islower(*str1)){*str1=toupper(*str1);}else if (isupper(*str1)){*str1=tolower(*str1);}str1++;}printf("%s\n", str);return 0;
}
交换两个整数
题⽬描述:
写⼀个函数Swap,可以交换两个整数的内容。注意必须实现成函数完成。 输⼊2个整数,调⽤⾃定义函数Swap,完成2个整数的交换。
测试1:
输⼊:3 5
输出:5 3
测试2:
输⼊:10 20
输出:20 10
思路:
该程序本身不难,只需注意:函数传参时只是一份临时拷贝,在函数结束后便会销毁,因此需要传址而不是简单的传值
#include<stdio.h>
#include<assert.h>void Swap(int* a, int* b)
{assert(a && b);int tmp = *a;*a = *b;*b = tmp;
}int main()
{int a = 0;int b = 0;scanf("%d %d",&a,&b);Swap(&a,&b);printf("%d %d\n",a,b);return 0;
}