C语言题:编写一个程序,输入长方形的长和宽,计算长方形的周长

C语言题:编写一个程序,输入长方形的长和宽,计算长方形的周长,第1张

#include <stdio.h>

int main() {

int length, width, perimeter

printf("长:")

scanf("%d", &length)

printf("宽:")

scanf("%d", &width)

perimeter = 2 * (length + width)

printf("周长:%d\n", perimeter)

}

里面有 n*n 个 边长1

(n-1) * (n-1) 个 边长2

(n-2) * (n-2)个边长3

所以一共有 1^2 + 2^2+ 3^2+...+n^2

根据数列求和公式 所以是 n(n+1)(2n+1)/6 个正方形

问题分为两步,

1界面设计,就如上面所说的

用getchar()获得一个输入,再编一个switch语句,然后写四个case语句加一个default。根据输入的字符调用不同函数。退出就是exit(0)。

2函数设计

(1)这里牵扯到n阶数组,可用一维数组的指针,动态申请内存长度,

比如int *pp=(int)malloc(sizeof(int)*n*n)//申请n×n个int

然后一一赋值,在做加减乘的时候,加减比如好算,但乘的运算应该是p[i*n+j]=p1和第i行和p2的第j列分别相乘再相加的结果。比较复杂

还要考虑的问题是左边和右边两个数组的阶数是否一致

(2)程序的主要难度在于p1与p2两个数组相乘的算法,结果放在p中,则提供思路如下

for(int i=0i<ni++)

for(int j=0j<nj++)

{

int sum=0

for(int k=0k<nk++)

for(int l=0l<nl++)

sum+=p1(i*n+k)*p2(l*n+j)//把p1的第i行和p2的第j列相加

p[i*n+j]= sum

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12040174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存