#include//打印一个三角形的函数,如果不会用函数,那把size 做成一个变量,把后面的代码复制过来就可以了void print_triangle(int size);int main(){ print_triangle(15); print_triangle(7);}void print_triangle(int size){//skip 用来跳过不需要打星号的计数//print 用来放这一行要打多少个星号//i 用来记录当前打印了多少星号或空格 int skip,print,i; //第一行不打空格,后面每行多打一个空格,skip就是空格数 //如果空格总数不小于这一行的字符总数了,就不用打印了 for(skip = 0; skip *2 size; ++skip) { //用总数减去前后的空格,就是星号个数 print = size - 2* skip; //打出空格 for(i=0; i skip; ++ i) printf(" "); //打出星号 for(i=0; i print; ++i) printf("*"); //后面的空格可以不用打了,反正看不见 //换行 printf("\n"); }}
公司主营业务:成都网站制作、成都做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出历下免费做网站回馈大家。
这是一段java代码,需要你自己改成C语言的了,注意换行啊
int x = 10;// 行数
String str = "*";
// 循环,打印x行
// 位置1要换行,位置2,3不需要换行
for (int i = 0; i x; i++) {
// 每打印一行字符就换行
System.out.println();// 1
// 循环打印行开头空格,每增加一行就多一个空格
for (int j = 0; j i + 1; j++) {
System.out.print(" "); // 2
}
// 打印图案
for (int k = 0; k x; k++) {
System.out.print(str); // 3
}
}
挺有意思的问题,简单谈一下看法
将你的需求分成两部分,一是让程序自行解析用户输入的函数解析式,二是绘制函数图像。
首先,关于第一个功能,最直接的思路就是字符串解析,按照数学知识定义不同的运算符号,按照使用习惯定义常用的变量和常量的符号字母,然后据此规则解析输入的字符串,再根据解析结果确定函数中基本运算的次数及运算顺序,最后将整个操作流程以一定形式存储起来即可。
例如,对于y=log(x^2+x),包含三次基本运算,第一步是x^2,第二步是上一步的结果+x,第三步是上一步的结果求对数。注意到log有定义域的限制,这也是要在程序中实现的。
然后,对于第二个功能,根据给定函数绘制图像并不难,对于一元和二元函数来说很容易实现,难点在于多元函数应如何绘制直观易懂的函数图像?不过这一点超出编程语言的范畴了,而且二元函数可以满足大部分应用场景了。
绘制函数图像的程序只需在定义域上按指定的步长求出不同自变量对应的函数值,然后将点连成线,即可绘制出函数图像。例如对于logx,定义域为x0。假设步长为0.1,则可求出0.1,0.2,0.3,...,99.9,100.0的函数值,然后绘制出点,再连点成线,即可得到函数图像。
另外,这里还有很多细节没有讨论,例如输入数据是字符串还是图像;是否可以用其他方法解析输入,例如神经网络。这些就很复杂了,不再深入。
回答中可能有考虑不周的地方,希望上述内容对你有参考意义