QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1495|回复: 21

初学C,请帮忙!

[复制链接]
发表于 2003-4-10 14:01:53 | 显示全部楼层 |阅读模式
我的九九乘法表是这样的:
main(void)
{
int i,j;
for(i=1;i<=9;i++)
{
  for(j=i;j<=9;j++)
  {
   printf("%d X %d= %d\t",i,j,i*j);
   printf("\n");
  }
}
}
输出成这样:
1 X 1= 1
1 X 2= 2
1 X 3= 3
1 X 4= 4
1 X 5= 5
1 X 6= 6
1 X 7= 7
1 X 8= 8
1 X 9= 9
2 X 2= 4
2 X 3= 6
2 X 4= 8
2 X 5= 10
2 X 6= 12
2 X 7= 14
2 X 8= 16
2 X 9= 18
3 X 3= 9
3 X 4= 12
3 X 5= 15
3 X 6= 18
3 X 7= 21
3 X 8= 24
3 X 9= 27
4 X 4= 16
4 X 5= 20
4 X 6= 24
4 X 7= 28
4 X 8= 32
4 X 9= 36
5 X 5= 25
5 X 6= 30
5 X 7= 35
5 X 8= 40
5 X 9= 45
6 X 6= 36
6 X 7= 42
6 X 8= 48
6 X 9= 54
7 X 7= 49
7 X 8= 56
7 X 9= 63
8 X 8= 64
8 X 9= 72
9 X 9= 81

我要的格式是这样:
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81

该怎样修改?我试过好几次,都不成功,只好求助.我知道这问题很简单,但我是初学者,没办法,麻烦你了~
发表于 2003-4-10 14:24:00 | 显示全部楼层
main(void)
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%d X %d= %d\t",j,i,i*j);
}
printf("\n");
}
}
我改了一下,这样应该行,我没试过,不行再找我
回复

使用道具 举报

发表于 2003-4-10 14:33:13 | 显示全部楼层
C 我就不知道, 但如果你用C++可以这么做.
[code:1]#include <iostream>

using namespace std;

int main()
{
        int i, j;

        for(j=1; j<=9; j++)
        {
                for(i=1; i<=j; i++)
                {
                        cout << i << 'X' << j << '=' << i*j << ' ';
                }
                cout << "\n";
        }

        cin.get();cin.get();
        return 0;

}[/code:1]
回复

使用道具 举报

 楼主| 发表于 2003-4-10 14:53:57 | 显示全部楼层
[quote:953f26553b="souky"]main(void)
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%d X %d= %d\t",j,i,i*j);
}
printf("\n");
}
}
我改了一下,这样应该行,我没试过,不行再找我[/quote]
可以,呵呵,想不到这么简单!
回复

使用道具 举报

 楼主| 发表于 2003-4-10 15:18:06 | 显示全部楼层
还有这样一道题不会:
编一程序,输出2的1~10次方的值.
回复

使用道具 举报

发表于 2003-4-16 20:10:20 | 显示全部楼层
main(void)
{
int i,j;
for(i=1;i<=10;i++)
{
a=1
for(j=1;1<=i;j++)
{
a=a*2
}
printf(a);
printf("\n");
}
}

在basic里如下:
For I=1 to 10
  A=1
For t=1 to I
   A=A*2
Next t
Print A
Next I

我喜欢用basic,用c语言写的程序不超过50个,呵呵
回复

使用道具 举报

发表于 2003-4-16 22:20:45 | 显示全部楼层
[code:1]#include <iostream>

using namespace std;

int main()
{
        int i, j;
        j=2;

        for (i=1; i<=10; i++)
        {
                cout << '2' << '^' << i << '=' << j << endl;
                j=j*2;
        }

        cin.get();cin.get();

        return 0;
}[/code:1]
回复

使用道具 举报

发表于 2003-4-17 07:45:24 | 显示全部楼层
or

[code:1]#include <iostream>
#include <cmath>

using namespace std;

int main()
{
        int y;

        for (y=1; y<=10; y++)
        {
                cout << '2' << '^' << y << "= " << pow(2, y) << endl;
        }

        cin.get();cin.get();
        return 0;
}[/code:1]
回复

使用道具 举报

发表于 2003-4-17 08:39:36 | 显示全部楼层
a question, using ansi c, how to print till 2^48. and can u give a fastest algorithm?
making it out is one thing, making it fast is another thing.
回复

使用道具 举报

发表于 2003-4-17 12:21:47 | 显示全部楼层
Who are you asking? I don't think it will be me.
回复

使用道具 举报

发表于 2003-4-17 21:43:03 | 显示全部楼层
anybody can answer this question, hehe. i want to know a correct and fast solution.
u int can not store 2^48. will overflow.
回复

使用道具 举报

发表于 2003-4-18 03:19:50 | 显示全部楼层
Then I will use a double, but I couldn't find the faster solution. What's your way? How do you do it?
回复

使用道具 举报

发表于 2003-4-18 07:12:42 | 显示全部楼层
but i need a integer result. then how to do? and what is the max double? i forget. i have no solution. i am quite busy on my work now.
回复

使用道具 举报

发表于 2003-4-18 07:19:10 | 显示全部楼层
Since the question is asking the power for base 2, then number we get will be integer anyway, even though we sign double to it. the range of double value is (2.2e-308 to 1.8e30, and the long double will be (3.4e-4932 to 1.1e+4932)

Beside using pow(), I can try loop or recursion, but that only makes it longer. Basicly I am a blind mind man, so I haven't found other possible way yet.
回复

使用道具 举报

发表于 2003-4-18 07:23:39 | 显示全部楼层
Probably we can ask someone about this on www.cppcn.net , www.chinaunix.net , or www.unix.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 04:36 , Processed in 0.076727 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表