Board logo

标题: 新人 前来报到 [打印本页]

作者: 我爱++    时间: 2010-7-12 16:57     标题: 新人 前来报到

开始学C++了呢,自己按照题目写了代码 可是编译错误。具体代码如下:

#include <iostream>
using namespace std;

int main()
{
        int a=0;
        int b=0;
        int c=0;
        int d=0;
       
        cout<<"输入a: ";
        cin>>a;
       
        cout<<"输入b: ";
        cin>>b;
       
        cout<<"输入c: ";
        cin>>c;

        d=a+b+c;
       
                cout<<"a+b+c= "<<d<<endl;
                return 0;
       
}


请老师指教,以后我会常来的
作者: fwbook    时间: 2010-7-12 20:30

你好。请发一下错误提示。
作者: 我爱++    时间: 2010-7-14 08:20

我重启VC6然后在运行就没有问题了,为什么在DEVc++上有很多代码运行不了啊
作者: fwbook    时间: 2010-7-14 09:12

VC 6中默认是按照C++的语法编译。但是在Dev C++中,需要检查一下设置。
作者: 我爱++    时间: 2010-7-14 10:28

不知道《C++从入门到实践》这本书的课后“上机实践”的答案在哪里可以找到。第六章的上机实践题1:用0~9着十个数字组成五位数,要求各位数字都不相同该如何编写呢?老师给点提示吧
作者: fwbook    时间: 2010-7-14 12:57

你好。上机实践应该在光盘中可以找到。
关于十个数字组成五位数,我简单说一下思路。
设置i表示这个五位数,则五位数的最小为10234,最大为98765。这样就可以让
for(i=10234;i<=98765;i++)进行循环。
然后依次计算i的万位、千位、百位、十位、个位的数。
如果五个数字都不一样,就是符合条件的数字。

这是基本思路,你可以考虑一下。
作者: 我爱++    时间: 2010-7-14 14:44

#include <stdio.h>#include <math.h>void main(){        int i,m,k,n=0;        for(m=1;m<=100;m++)        {        k=(int)sqrt(m);        for(i=2;i<=k;i++)                if(m%i==0)break;                if(i>k)                {                        printf("%3d",m);                        n=n+1;                }                if(n%10==0)                        printf("\n");        }        printf("\n");}



求管理员解释这串代码特别是套嵌部分
作者: 我爱++    时间: 2010-7-14 16:12

#include<iostream>
using namespace std;
int main()
{
int j;
for(int i=2;i<100;i++) //第一循环是从2-100个数
{
for(j=2;j<=i/2;j++) //第二个循环是判断i的值是不是素数.
{
if(i%j==0) //如果被整除 那么就不是素数.跳出
break;
}
if(j>i/2) //判断上面循环是否正常结束
cout<<i<<" "; //如果上面循环正常结束 则i是素数 输出
}
cout<<endl;
}


这个有注释j<=i/2是什么意思
作者: fwbook    时间: 2010-7-14 16:24

7# 我爱++

#include <stdio.h>
#include <math.h>
void main(){
        int i,m,k,n=0;
        for(m=1;m<=100;m++)            'm从1循环到100
       {
        k=(int)sqrt(m);                         '求m的平方根,并取整数
        for(i=2;i<=k;i++)                     'i从2循环到k
                if(m%i==0)break;            '如果m可以被i整数,说明m不是素数
                if(i>k)                             '如果i大于k了,
                {
                        printf("%3d",m);        输出m
                       n=n+1;                     '计数加1。
               }
               if(n%10==0)                     '如果n是10的整数
                        printf("\n");             '输出一个换行符
        }
        printf("\n");}
作者: fwbook    时间: 2010-7-14 16:25

8# 我爱++


这里j<i/2 是为了降低j的循环次数。
作者: 我爱++    时间: 2010-7-14 16:35

老师 第二个for循环 我一直没弄清楚 比如9l的代码 K是品方根取整数,从2循环到这个整数有什么用啊
作者: fwbook    时间: 2010-7-14 18:07

11# 我爱++


这和素数的定义有关。素数要求数字只能被1和本身整除。这里为了检验是否为素数,所以就从2到k的数字挨个来除,看是否能被整除。如果可以整除,说明这个数字不是素数。
作者: 我爱++    时间: 2010-7-16 19:56

#include <iostream>
using namespace std;

int main()
{
        int *sum=0;                //定义一个整形指针变量*sum并初始化为0
        int *p=0;                //定义一个整形指针变量*p并初始化为0
        int x=0;                //定义一整形变量x并初始化为0

        sum=new int[100];                //用new为sum申请100内存空间
        *sum=1;                //将*sum赋值为1,也就是首地址保存为1
       
        p=sum;                //保存空间的首地址
        for (int i=2; i<=100;i++)                //使用for循环,循环初始值i为2(从第二格内存地址开始),次数为小于等于100;i自增
        {
                x=*sum;                //x保存*sum的值为1
                sum++;                //内存地址向后移动一位
                *sum=x+i;                //将x+i的值存入*sum,*sum=1+2。此时循环到x=*sum,x=1+2。移动一位,*sum=1+2+i.......
        }

        cout<<"和为:"<<*sum<<endl;
       
        delete[] sum;
                sum=0;
                p=0;
       
                return 0;
}



老师帮我看一下注释写的对不对。这代码我在变编译的时候出现了内存错误,请检查
作者: fwbook    时间: 2010-7-17 16:57

发一下内存错误的具体提示信息。
作者: 我爱++    时间: 2010-7-19 16:51

是windows报错,说是遇到问题需要关闭。5050是算出来了

老师,第八章复合类型最后的“上机实践”有这样一题“用new实现一个整型的动态二维数组int[3][2],从键盘读入数字进行初始化,并输出数组所有元素”。书上给了一段核心代码:

#include <iostream>
using namespace std;

int main()
{
    int *p[3];    //定义一个数组指针
    for (int i=0; i<3; i++)
    {
         p[i]=new int[2];    //为每个指针申请两个存储空间
    }


接下去我实在不知道怎么写了,求思路
作者: fwbook    时间: 2010-7-20 08:51

然后就是循环从键盘上读取输入,对数组进行赋值。

最后循环输出,就OK了。
作者: 我爱++    时间: 2010-7-21 18:44

用for循环吗?老师能不能把键盘读取-赋值这段写出来我看看,要是光盘里有答案就好了
作者: fwbook    时间: 2010-7-21 21:45

17# 我爱++


for和while都可以。只要把数组赋值好,就可以了。
作者: 我爱++    时间: 2010-7-29 19:27

我看了一半了,可是题目却做不出来是什么原因类
作者: fwbook    时间: 2010-7-30 08:50

这个代码是是首先动态定义。然后就需要从键盘读取了。读取的死后,还是使用for循环的方式,给每个元素赋值。赋值后,再次循环,依次输出每个元素的值。
作者: benyitonghei    时间: 2010-8-1 13:44

我发现JAVA和C++也差不多嘛。。看了JAVA以后,感觉这C++也不怎么难哦
作者: fwbook    时间: 2010-8-1 23:03

我在另外一个帖子中回复了。你看一下。
作者: 我爱++    时间: 2010-8-4 20:28

差不多了,老师 C++学习算法和数据结构也很重要吗
作者: fwbook    时间: 2010-8-4 22:23

23# 我爱++


如果你打算以后以C++为主,建议你学习一下数据结构和算法。这样可以帮助你提高编程能力。
作者: 我爱++    时间: 2010-8-14 21:16

老师
类是什么,感觉和前面几章接不上啊
作者: fwbook    时间: 2010-8-14 22:20

25# 我爱++


怎么回答你的问题呢?我打一个比方,你可以试着理解一下。

我手头边有一个照片。我给你看照片的局部。白色的毛、长耳朵、红眼睛、吃萝卜。单独这些局部,很难猜出来这是什么动物。但是综合起来,大家就知道这是一只兔子。

这些局部,白色的毛、长耳朵、红眼睛,可以看作书中前面讲解的变量和数据类型,而吃萝卜,可以看作函数。单独的变量、数据类型、函数很难描述我们实际中的东西。但是把这些东西综合起来,就可以了。

类就是对前面章节的内容的综合应用。




欢迎光临 万卷图书 (http://wanjuanchina.net/) Powered by Discuz! 7.0.0