医美技术支持东莞网站建设,无忧中英繁企业网站系统通用版,去掉博客网站链接后面的wordpress,网站怎么做子页目录 例题一题目解析及答案 例题二题目解析及答案 例题三题目解析及答案 例题四题目解析及答案 例题五题目解析及答案 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 #x1f412;#x1f412;#x1f412;
个人主页 #x1f978;#x1f978;#x1f… 目录 例题一题目解析及答案 例题二题目解析及答案 例题三题目解析及答案 例题四题目解析及答案 例题五题目解析及答案 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 个人主页 C语言 ️️️
C语言例题 python 例题一
写一个函数打印arr数组的内容不使用数组下标使用指针。 arr是一个整形一维数组
题目解析及答案
这道题的核心就在于数组名是数组首元素地址,也就是*(arr1)arr[1] 详细可以看C语言深入理解指针非常详细二) 方法一
int main()
{int arr[] { 1,2,3,4,5,6,7,8,9,10 };int* p arr;int sz sizeof(arr) / sizeof(int);for(int i0;isz;i){printf(%d , *(p i));}return 0;
}

方法二
int main()
{int arr[] {1,2,3,4,5,6,7,8,9,10};int* p arr; for(int i 0; i sizeof(arr)/sizeof(arr[0]); i){printf(%d , *p); p; }return 0;
}例题二
写一个函数可以逆序一个字符串的内容
题目解析及答案
方法一
void Reverse(char* str)
{char* left str;char* right str strlen(str)-1;while(left right){char temp *left;*left *right;*right temp;left;--right;}
}
int main()
{char str[] hello jack;Reverse(str);return 0;
}这个方法其实就是找到字符串中左右字符的地址,通过解引用实现交换
注意如果是在线OJ时必须要考虑循环输入因为每个算法可能有多组测试用例进行验证参考以下main函数写法
方法二
int main()
{char str[101] {0};while(gets(str)){Reverse(str);printf(%s\n, str);memset(str, 0, sizeof(str)/sizeof(str[0]));}return 0;
}关于memset的实现在之前C语言内存函数有写过
例题三
用C语言在屏幕上输出以下图案
题目解析及答案
这是一个对称图形其中有图形由空格符号还有*号组成
号以奇数的规律变化空格符号和号在同一排的总数加起来为13
通过图形规律可以知道上半图形中 *号可以以循环fori1i13;ii2)来表示
对于空格符号,左半部分的规律是j(13-i)/2,j,右半部分则是j(14-(13-i)/2)
方法一
int main()
{int i 1, j 1;for (i 1; i 13; i i 2){while (j 13){if (j(13 - i) / 2 || j(14 - (13 - i) / 2)){printf( );j;}else{printf(*);j;}}printf(\n);j 1;}for (i 11; i 1; i i - 2){while (j 13){if (j (13 - i) / 2 || j (14 - (13 - i) / 2)){printf( );j;}else{printf(*);j;}}printf(\n);j 1;}return 0;}方法二
int main()
{int line 0;int i 0;scanf(%d, line);//输入7for(i0; iline; i){int j 0;for(j0; jline-1-i; j){printf( );}for(j0; j2*i1; j){printf(*);}printf(\n);}for(i0; iline-1; i){int j 0;for(j0; ji; j){printf( );}for(j0; j2*(line-1-i)-1; j){printf(*);}printf(\n);}return 0;
}例题四
求出0100000之间的所有“水仙花数”并输出。 “水仙花数”是指一个n位数其各位数字的n次方之和确好等于该数本身如:1531^35 ^33 ^3则153是一个“水仙花数”。
题目解析及答案
我们用i来表示水仙花数通过for循环来表示0到100000的水仙花数
为了知道水仙花数有多少位我们需要用到一个while循环循环判断条件位水仙花数的余数不为0因此我们使用一个变了j来保存水仙花数i然后再进行判断既whilej%10
而为了计算有多少位我们需要对每次循环用count来记录然后每次循环让水仙花数减少一位数也就是countjj/10
之后我们再让j重新等于i来进行判断是否是水仙花数
我们用一个变量sum来计算每位数的n次方总和也就是sumsumpowj%10count
最后就是判断了
#includemath.h
int main()
{int i 0, j 0, sum 0,count0;for (i 0; i 100000; i){j i;while (j % 10){count;j j / 10;}j i;for (int k count; k 0; k--){sum sum pow(j % 10, count);//pow数计算一个数的次方是多少j j / 10;}if (i sum)printf(%d , i);sum 0;count 0;}return 0;
} 这道题for循环用的比较多,如果对for循环有疑惑的可以看我之前写的一篇文章for和do-while循环以及break和continue语句
例题五
求Snaaaaaaaaaaaaaaa的前5项之和其中a是一个数字
例如222222222222222
题目解析及答案
我们可以看到aa只是在a10的基础上再加上a也就是aaa10aaaaaa*10a
int main()
{int n 0,a0,b0,Sn0;scanf(%d %d, n,a);b a;for (int i 0; i n; i){Sn Sn b;b b * 10 a;}printf(%d, Sn);return 0;
}