当前位置: 首页 > wzjs >正文

网站做担保交易养生门户网站源码

网站做担保交易,养生门户网站源码,个人主页生成,开滦建设集团网站在这个系列中,我将以每次五题的形式加强对C语言的理解 1、 矩阵转置 要求 输入: 2 3 1 2 3 4 5 6输出: 1 4 2 5 3 6 //矩阵转置(复习) int main() {int i 0;int j 0;int arr[10][10];/*提前定义好一个大容量数…

在这个系列中,我将以每次五题的形式加强对C语言的理解


1、 矩阵转置

要求

输入:

2 3
1 2 3
4 5 6

输出:

1 4 
2 5 
3 6 

//矩阵转置(复习)
int main()
{int i = 0;int j = 0;int arr[10][10];/*提前定义好一个大容量数组,因为VS不支持变长数组*/int m = 0;int n = 0;scanf("%d %d", &m, &n);for (i = 0;i < m;i++){for (j = 0;j < n;j++){scanf("%d", &arr[i][j]);}}for (i = 0;i < n;i++){for (j = 0;j < m;j++){printf("%d", arr[j][i]);/*将i和j互换就是打印的时候从列开始*/}printf("\n");}return 0;
}

这里需要注意的就是转置时列和行的互换,转置前是从行开始,转置后是先从列开始打印

在转置的第二个for循环中,此时才刚刚开始产生j并且实现范围内的自增,这时就能实现从列开始打印

2、计算Sn的值

Sn = a + aa + aaa + aaaa+ aaaaa,   输入a

int main()
{int i = 0;int sum = 0;int count = 1;scanf("%d", &i);while (count <= 10000){/*这里的错误是计算成了:2*1 + 2*10 + 2*100...*/
//而题目计算的是  2 + 22 + 222...sum += i * count;count *= 10;}printf("%d", sum);return 0;
}

在这里我出现了典型的错误,具体如图片中所展现的

下面是找到问题后改正的代码:

//Sn加和
int main()
{int i = 0;int sum = 0;int count = 0;scanf("%d", &i);int term = i;while (count < 5){/*这里的错误是计算成了:2*1 + 2*10 + 2*100...*/
//而题目计算的是  2 + 22 + 222...sum += term;term = term * 10 + i;count++;}printf("%d", sum);return 0;
}

如果还是while循环的话使用递推公式是最好的选择,它最重要的作用就是可以避免加和时i变化式子改变的影响                                        (简单说就是保留了i输入后的起始值)

还有一种是用for循环来处理,是更清晰的处理方法:

//这是改进后的代码
int main()
{int i = 0;int sum = 0;int a = 0;int j = 0;scanf("%d %d", &i, &a);int term = 0;for (j = 0;j < a;j++){term = term * 10 + i;sum += term;}printf("%d", sum);return 0;
}

3、打印菱形(如图所示)

      ************************************
*************************************************

像这种打印图形的题目都有一个通法,那就是将他们的数据一一列出来然后寻找算数上的规律,

最后按照规律打印它们即可:

//题目 打印菱形void fun(int line, int under)
{int i = 0;int j = 0;int k = 0;int m = 0;int n = 0;int o = 0;/*打印上半部分,一行一行打印*/for (i = 0;i < line;i++){/*先打印空格*/for (j = 0;j < line - 1 - i;j++){printf(" ");}for (k = 0;k < 2 * i + 1;k++){printf("*");}printf("\n");}for (m = 0;m < under;m++){for (n = 0;n < m + 1;n++){printf(" ");}for (o = 0;o < (under - m) * 2 - 1;o++){printf("*");}printf("\n");}
}int main()
{fun(7, 6);return 0;
}

4、递归在阶乘上的实现

//一、递归在阶乘上的实现
Rat(int i)
{if (i == 0)/*限制条件*/return 1;else/*每一次递归都接近这个限制条件*/return Rat(i - 1) * i;
}int main()
{int i = 0;scanf("%d", &i);int a = Rat(i);printf("%d", a);return 0;
}

这是一种递归的方法,当然也可以不使用递归来做

方法如下:

int main()
{int a = 0;int m = 0;int sum = 0;for (a = 1; a <= 10;a++){int ret = 1;for (m = 1;m <= a;m++){ret *= m;}sum += ret;}printf("%d", sum);return 0;
}

当然,这里是为了方便调试而写了两个循环,可以想想一个循环可以实现嘛?

http://www.dtcms.com/wzjs/793611.html

相关文章:

  • 手机网站建设服务电话镇江优化九一
  • 湖州做网站建设的公司什么是最经典最常用的网站推广方式
  • 青岛网站建设团队wordpress导航404
  • 淘宝做推广网站做化学合成的网站有哪些
  • dw怎么做网站相册网站建设项目评审意见
  • 网站设计建设收费标准江苏建设工程有限公司简介
  • 常州网站制作套餐无锡哪家网站做的比较好
  • 怎么自己建一个论坛网站国外品牌vi设计
  • python网站开发简单吗海口网站建设品牌大全
  • 长沙门户网站建设公司资源猫
  • 深圳市做网站公司下载网站app
  • 搜狐网站网络营销怎么做新平台推广赚钱
  • wordpress主题 演示数据做网站seo赚钱吗
  • 做电子网站宁波市有哪些网站建设公司
  • 平台网站建设方案标书郴州有哪些推广平台
  • 全自动建站系统代理服务器在线
  • 检测WordPress网站的安全性htm网站制作
  • 潮州市网站建设公司巢湖做网站的公司
  • 公司网站建设内部调查黄骅怎么读
  • 孝感网站开发培训机构网站的电子地图怎么做
  • 榆林网站建设公司电话江苏园博园建设开发有限公司网站
  • 云主机做网站永久保留网站温州建网站公司
  • 网站快速排名的方法5网站开发之美
  • 三明市网站建设东营网站seo外包
  • 重庆要做网站推广三网合一网站建设程序
  • 企业网站诊断与优化方案网站建设费用低设计好
  • 广州木马网站建设公司怎么样公司网站建设 上海
  • 网站页面设计怎么做网站开发接入支付宝
  • 天河建设网站公司个人公司网页如何设计
  • 网站建设合同用贴印花税吗有色建设网站