C++新手求助

2024-12-12 10:48:19
推荐回答(6个)
回答1:

int 是有范围的,当你的数字比较大的时候,最好是用
long int n,n2,n3
来定义,这样就不会错了

回答2:

不同的编译器的int宽度不一样
你改成__int64类型的吧
输入格式为scanf("%I64d",&a);
输出格式为printf("%I64d",a);
另外没有long int这种说法,只有long long!

回答3:

sizt_t是C++的一个标准的typedef.全局有效,定义在全局名称空间中
size_type是STL定义的,只在namespace
std中有效VC6中定义size_t为typedef
unsigned
int
size_t
size_type应该是C++为例如string类和许多其他库类型定义的配套类型,使这些库类型的使用与机器无关,一般定义为unsigned类型(例如unsigned
int
unsigned
long)用法如下:
容器名字::size_type
std::string::size_type
index
是string
类型中的
size_type
类型
是一种整型
一般用于数组大小
string[std::string::size_type]string::size_type类型从逻辑上来讲,size()成员函数似乎应该返回整型数值,或如2.2节“建议”中所述的无符号整数。但事实上,size操作返回的是string::size_type类型的值。我们需要对这种类型做一些解释。string类类型和许多其他库类型都定义了一些伙伴类型(companion
types)。这些伙伴类型使得库类型的使用是机器无关的(machine-independent)。size_type就是这些伙伴类型中的一种。它定义为与unsigned型(unsigned
int或unsigned
long)具有相同的含义,而且可以保证足够大可存储任意string对象的长度。为了使用由string类型定义的size_type类型,程序员必须加上作用域操作符来说明所使用的size_type类型是由string类定义的。任何存储string的size操作结果的变量必须为string::size_type类型。特别重要的是,不要把size的返回值赋给一个int变量。虽然我们不知道string::size_type的确切类型,但可以知道它是unsigned型(2.1.1节)。对于任意一种给定的数据类型,它的unsigned型所能表示的最大正数值比对应的signed要大一倍。这个事实表明size_type存储的string长度是int所能存储的两倍。使用int变量的另一个问题是,有些机器上int变量的表示范围太小,甚至无法存储实际并不长的string对象。如在有16位int型的机器上,int类型变量最大只能表示32767个字符的string对象。而能容纳一个文件内容的string对象轻易就会超过这个数字。因此,为了避免溢出,保存一个string对象size的最安全的方法就是使用标准库类型string::
size_type。string类类型和许多其他库类型都定义了一些配套类型(companion
type)。通过这些配套类型,库类型的使用就能和机器无关(machine-independent)。string::size_type定义为unsigned型,可以保证足够大的存储string对象的长度。
注意,任何存储string的size操作结果的变量必须为string::size_type类型。尤其不能把size的返回值赋给一个int变量。(因为size返回的是一个unsigned类型,而int是signed类型。size能表达的大小是int的2倍)。
string
str("some
string");

//通过字符串字面值赋值给串
for
(string::size_type
ix
=
0;
ix
!=
str.size();
++ix)

//此处不该为int

用!=,而不用<=
{

cout<}
vector
ivec;
for(vector::iterator
ix
=
ivec.begin();
ix
!=
ivec.end();
++ix)

//此处不该为int

用!=,而不用<={

*ix
=
0;
//将各个元素赋值为0
}

回答4:

自己把数字每位的数猜分不就可以了吗?提示:用操作符\"/\"。

回答5:

LZ,用C语言写的,要是需要改成C++的话就说,哪不懂再问,望采纳
/*
判断回文数
*/
#include
int
main()
{
char
num[50];
char
*
p
=
num;
char
*
q
=
num;
printf("请输入一个整数:
");
gets(num);
while(*q
!=
'\0')
{
q++;
}
q--;
while(q
-
p
>=
0)
{
if(*p
!=
*q)
{
printf("该数不是回文数!\n");
return
0;
}
p++;
q--;
}
printf("该数是回文数!\n");
return
0;
}

回答6:

回复
zxb708的帖子现在我最主要的问题就是这个数还是不知道位数的我不知道要怎么判断这个数的位数啊?