厦门seo网站排名优化,国外中文网站域名注册商,营销型网站建设团队,做网站就是做服务今天来讲解一下数组相关的习题#xff0c;巩固昨天的知识 欢迎加入嵌入式学习群#xff1a;559601187 1.对于二维数组首地址偏移。 二维数组数组名偏移一个数#xff0c;地址偏移一行#xff0c;针对这个问题后面会做一个详细的讲解
#include stdio.h
int main()
… 今天来讲解一下数组相关的习题巩固昨天的知识 欢迎加入嵌入式学习群559601187 1.对于二维数组首地址偏移。 二维数组数组名偏移一个数地址偏移一行针对这个问题后面会做一个详细的讲解
#include stdio.h
int main()
{int str[3][3]{1,2,3,4,5,6,7,8,9};int i0,j0;for(i0;i3;i){for(j0;j3;j){printf(str[%d][%d]%p\n,i,j,str[i][j]);}}printf(%p\n,(str1)[0]);//4地址--偏移一行printf(%d\n,(str[0]1)[0]);//数字2--偏移一个元素return 0;
}2、利用数组实现斐波那契数列的前30项并要求格式化对齐每行值输出5个数 斐波那契数列1 1 2 3 5 8 13 21……
#include stdio.h
int main()
{int str[30]{1,1},i0,sum0;for(i2;i30;i){str[i]str[i-1]str[i-2];}for(i0;i30;i){ printf(%-8d,str[i]); if((i1)%50){printf(\n); }}return 0;
} 3、要用用二维数组实现求一个3*4的矩阵的转置矩阵 将原来矩阵的行变成新矩阵的列原来矩阵的列变成新矩阵的行。
#include stdio.h
int main()
{int str[3][4]{1,2,3,4,5,6,7,8,9,10,11,12},i0,j0;int str2[4][3]{0};for(i0;i3;i){for(j0;j4;j){str2[j][i]str[i][j];}}for(i0;i4;i){for(j0;j3;j){printf(%-4d,str2[i][j]);}printf(\n);}return 0;
}4、输入一行字符串统计其中大写字母的个数并将所有的大写字母转化成小写字母后输出。scanf(“%s”,数组名)
#include stdio.h
#include string.h
int main()
{char str[100]{0};int i0,len0,count0;scanf(%s,str);lenstrlen(str);for(i0;ilen;i){if(str[i]Astr[i]Z){count;str[i]32;}}printf(count%d,%s\n,count,str);return 0;
}5、输入一个字符串判断是否是回文。回文这个字符串顺读和反读是一样的。 如“abcba”和”123321”都是回文
#include stdio.h
#include string.h
int main()
{char str[100]{0};int i0,len0;scanf(%s,str);lenstrlen(str);for(i0;ilen/2;i){if(str[i]str[len-i-1]){//count;break;}}if(ilen/2){printf(yes\n);}else{printf(no\n);}return 0;
}6、按以下输出格式打印杨辉三角的前10行 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1
#include stdio.h
#include string.h
int main()
{int str[10][10]{0};int i0,j0;for(i0;i10;i){str[i][0]1;str[i][i]1;}for(i2;i10;i){for(j1;j10;j){str[i][j]str[i-1][j]str[i-1][j-1];}}for(i0;i10;i){for(j0;ji;j){printf(%-5d,str[i][j]);}printf(\n);}return 0;
}9、假设有10个数已经按照从小到大的顺序存放在数组中要求向从键盘输入一个整数 插入这10个数中使数组仍是从小到大的顺序排列
#include stdio.h
#include string.h
int main()
{int str[11]{1,2,3,4,5,6,7,8,9,10};int i0,j0,num0,temp0;scanf(%d,num);for(i0;i10;i){if(numstr[i]){tempi;break;}}if(numstr[9]){temp10;}for(i10;itemp;i--){str[i]str[i-1];}str[temp]num;for(i0;i11;i){printf(%d\n,str[i]);}return 0;
}10、输入10进制数转换为二进制进行输出
#include stdio.h
#include string.h
int main()
{int str[100]{0};int count0,num0,i0;scanf(%d,num);while(num){str[count]num%2;num/2;}for(icount-1;i0;i--){printf(%-2d,str[i]);}printf(\n);return 0;
}本文章仅供学习交流用禁止用作商业用途文中内容来水枂编辑如需转载请告知谢谢合作
微信公众号zhjj0729
微博文艺to青年