返回列表 回复 发帖

新人 前来报到

开始学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;
       
}


请老师指教,以后我会常来的
你好。请发一下错误提示。
我重启VC6然后在运行就没有问题了,为什么在DEVc++上有很多代码运行不了啊
VC 6中默认是按照C++的语法编译。但是在Dev C++中,需要检查一下设置。
不知道《C++从入门到实践》这本书的课后“上机实践”的答案在哪里可以找到。第六章的上机实践题1:用0~9着十个数字组成五位数,要求各位数字都不相同该如何编写呢?老师给点提示吧
你好。上机实践应该在光盘中可以找到。
关于十个数字组成五位数,我简单说一下思路。
设置i表示这个五位数,则五位数的最小为10234,最大为98765。这样就可以让
for(i=10234;i<=98765;i++)进行循环。
然后依次计算i的万位、千位、百位、十位、个位的数。
如果五个数字都不一样,就是符合条件的数字。

这是基本思路,你可以考虑一下。
#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");}



求管理员解释这串代码特别是套嵌部分
#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是什么意思
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");}
8# 我爱++


这里j<i/2 是为了降低j的循环次数。
老师 第二个for循环 我一直没弄清楚 比如9l的代码 K是品方根取整数,从2循环到这个整数有什么用啊
11# 我爱++


这和素数的定义有关。素数要求数字只能被1和本身整除。这里为了检验是否为素数,所以就从2到k的数字挨个来除,看是否能被整除。如果可以整除,说明这个数字不是素数。
#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;
}



老师帮我看一下注释写的对不对。这代码我在变编译的时候出现了内存错误,请检查
发一下内存错误的具体提示信息。
是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];    //为每个指针申请两个存储空间
    }


接下去我实在不知道怎么写了,求思路
返回列表