求助 :c语言程序设计 输入一个2-9之间任意一个数,然后利用循环嵌套,输出一个相应的乘法表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助 :c语言程序设计 输入一个2-9之间任意一个数,然后利用循环嵌套,输出一个相应的乘法表相关的知识,希望对你有一定的参考价值。

这个可以这样实现先读入一个数n,然后设计一个二重循环,外层循环从1一直到n,也就是一共输出有n行。
然后内循环是从1开始,一直到本行的行数为止进行循环,每次执行内循环体就输出一个乘法等式,当内循环结束的时候进行换行。
整个程序就实现了题目所规定的要求。
main()
int i,j,n;
scanf (“%d”,&n);
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
printf (“%d*%d=%-4d”,i,j,i*j);
printf(“\n”);

参考技术A 你要写一个九九乘法表?
#include<stdio.h>
void main()
int num,i,j;
printf("请输入一个2-9之间的数:");
scanf("%d",&num);
while (num>9||num<2)
printf("必须输入一个2-9之间的数!\n\n");
scanf("%d",&num);

for (i = 1; i <= num; i++)
for (j = 1; j <= i; j++)
printf("%d×%d=%d\t",i,j,(i*j));

printf("\n");


本回答被提问者采纳

求助,关于c语言的单词输出程序

题目是这样的,首先用字符串建立一个单词库,里面储存有一定数目(小于100)的单词(单词互不包含,也就是一个单词不能为另一个的前缀),然后用户输入一长串字母,要求是输出在这串字母中出现的单词库中的单词,我想过一个算法,就是从输入字符串的第一个字母开始,然后逐步与单词库中的单词匹配,如果不成功则前两个字母一起匹配,以此类推,知道字符串所有字母都匹配完毕为止。如果第一个不行,那么再从第二个,第三个...开始匹配。但是我感觉算法的效率不高,首先,从一到串长要进行一次循环,然后依次匹配单词库又要进行一次循环,从一开头到串末端又要进行依次循环。共计三次循环,时间效率太低。请问有什么比较好的算法使时间复杂度能到O(n2)到O(n)的级别?

提供三种方法:
1.有多少个单词,开多少个比较线程进行比较;能达到O(n2)缩短到O(n);...
2.在加载单词库后,维护一个单词链表,将每个单词首字符的地址指针用来链表记录,这样就可以用单词去比较用户输入的一长串字母;但不能将时间复杂度缩小到O(n);
3.综合kmp和Shift-And算法,采取位滑动,和位映射结合的方法;时间复杂度能降低,但...仍然不能从O(n2)降到O(n)

所以,开线程是最好达到目的的实现方法;
参考技术A 单词库存储时进行排序,然后建立索引比如a/A-z/Z,从第一位开始一直到最后一位的索引,如果词库太大可以只建立前面部分的索引 参考技术B 新建一个数组english[20]
让english[0]="zero", english[1]="one", english[2]="two"...
然后,对于输入的数字,如果它小于20, 就直接到english数组中去取对应的值.
如果大于等于20小于100,先把十位上的数字取出来, 根据十位数字生成twenty, thirty, fourty, fifty等十位的英文,再把个位取出来,到english数组中去取个位的英文. 如果在100到1000之间,就先取百位......
总之就是这样了
另外,虚机团上产品团购,超级便宜
参考技术C int Index_KMP(char *s, char *t, int pos)
// 利用模式串t的next函数求t在主串s中第pos个字符之后的位置的
// KMP算法。其中,s非空,1<=pos<=strlen(s)
int i = pos;
int j = 1;
while (i<=strlen(s) && j<=strlen(t))
if (j==0 || s[i]==t[j])
++i; ++j;
else j=next[j];

if (j>strlen(t)) return i-strlen(t);
else return 0;


void get_next(char *t, int next[])
// 求模式串t的next函数并存入next数组
int i = 1, j = 0;
next[1]=0;
while (i<strlen(t))
if (j==0 || s[i]==t[j])
++i; ++j;
if (t[i] != t[j]) next[i]=j;
else next[i]=next[j];

else j=next[j];

参考技术D 数据结构 串的模式匹配里有方法实现 。
参考 数据结构(C语言版) 严蔚敏_吴伟民 。
相信你能看懂的 在书本79页 。
可以达到 O(n + m) 。即差不多O(2n)

以上是关于求助 :c语言程序设计 输入一个2-9之间任意一个数,然后利用循环嵌套,输出一个相应的乘法表的主要内容,如果未能解决你的问题,请参考以下文章

C语言求助,《求m和n之间的所有素数》

C语言求助。急急

C语言程序求助

c语言中应用switch语句编程:输入1-7之间的任意数字,程序按照用户的输入输出相应的星期值!!

c语言作业,求助!

求助,关于c语言的单词输出程序