C++ 求帮助。两个问题:1怎么定义一个正整数? 2怎么定义一个未知长度的一维数组(长度由输入确定)?
4个回答
展开全部
定义一个正整数有4种方法:
unsigned int a; //最常用的
unsigned short a;//short是短整型
unsigned long a; //long是长整型
unsigned char a; //char是字符型,这种方法可定义正整型,亦可定义字符变量
定义未知长度的数组:
int n=0; //定义一个整型变量来记录你要输入的数组长度
int *array; /*定义一个指针变量作为数组的首元素地址,array亦即数组名,int是类型名,表示数组是整型数组*/
cin>>a; //输入你要定义的数组长度。
array=new int[a]; //为你的数组在内存中开辟一小段空间,并将其首地址赋值给array。也就是定义好了一个以“array”为数组名,长度为a的整型数组。
unsigned int a; //最常用的
unsigned short a;//short是短整型
unsigned long a; //long是长整型
unsigned char a; //char是字符型,这种方法可定义正整型,亦可定义字符变量
定义未知长度的数组:
int n=0; //定义一个整型变量来记录你要输入的数组长度
int *array; /*定义一个指针变量作为数组的首元素地址,array亦即数组名,int是类型名,表示数组是整型数组*/
cin>>a; //输入你要定义的数组长度。
array=new int[a]; //为你的数组在内存中开辟一小段空间,并将其首地址赋值给array。也就是定义好了一个以“array”为数组名,长度为a的整型数组。
展开全部
unsigned short、unsigned int、 unsigned long这些都是定义正整数,只是范围不一样而已。
比如:
unsiged short a; //这里a是无符号短整型,也就是正整型的正数类型,
unsiged int b; unsiged long c; //与unsiged short a;一样,只是b的是int类型的正整数,c是long类型的正整数。它们的区别就类似于short,int,long之间的区别一样,只是都是正整数而已。
至于定义未知长度的一维数组,你可以利用指针,
1.可以如一楼的方法,
usingned int a;
int *array;
printf("%d",&a); //这是C的语法 或者 cin>>a; //这是C++的语法,两者等价
array = new int[a]; //之后你就可以吧array当做是长度为 a 的数组进行操作了。
2.你可以使用malloc()方法动态分配内存来实现。
如:
#include<stdio.h>
#include<malloc.h>
void main()
{
usigned int n, i;
int *array;
scanf("%d",&n);
//申请分配类型为int,长度为n的内存空间,并将首地址赋值给指针array;
array = (int*)malloc(sizeof(int)*n); //利用malloc()函数申请内存空间,要引入malloc.h头文件
for(i=0; i<n; i++) //初始化array
{
array[i] = i;
}
for(i=0; i<n; i++) //输出array
{
printf("%d \n", array[i]);
}
return;
}
比如:
unsiged short a; //这里a是无符号短整型,也就是正整型的正数类型,
unsiged int b; unsiged long c; //与unsiged short a;一样,只是b的是int类型的正整数,c是long类型的正整数。它们的区别就类似于short,int,long之间的区别一样,只是都是正整数而已。
至于定义未知长度的一维数组,你可以利用指针,
1.可以如一楼的方法,
usingned int a;
int *array;
printf("%d",&a); //这是C的语法 或者 cin>>a; //这是C++的语法,两者等价
array = new int[a]; //之后你就可以吧array当做是长度为 a 的数组进行操作了。
2.你可以使用malloc()方法动态分配内存来实现。
如:
#include<stdio.h>
#include<malloc.h>
void main()
{
usigned int n, i;
int *array;
scanf("%d",&n);
//申请分配类型为int,长度为n的内存空间,并将首地址赋值给指针array;
array = (int*)malloc(sizeof(int)*n); //利用malloc()函数申请内存空间,要引入malloc.h头文件
for(i=0; i<n; i++) //初始化array
{
array[i] = i;
}
for(i=0; i<n; i++) //输出array
{
printf("%d \n", array[i]);
}
return;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream>
using namespace std;
void main( )
{
unsigned int a = 0,b; // 定义一个正整数
int *array;
cin>>a; // 长度由输入确定
array = new int[a]; // 定义一个未知长度的一维数组(长度由输入确定
// 使用数组
for(b=0;b<a;b++)
{
array[b]=b;
}
for(b=0;b<a;b++)
{
cout<<array[b]<<" ";
}
//释放内存
delete[]array;
}
using namespace std;
void main( )
{
unsigned int a = 0,b; // 定义一个正整数
int *array;
cin>>a; // 长度由输入确定
array = new int[a]; // 定义一个未知长度的一维数组(长度由输入确定
// 使用数组
for(b=0;b<a;b++)
{
array[b]=b;
}
for(b=0;b<a;b++)
{
cout<<array[b]<<" ";
}
//释放内存
delete[]array;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
unsigned char;
unsigned short;
unsigned int ;
unsigned long;
//以上都定义一个正整数,范围不一样...
类型指针 p=new 类型[数量]
类型指针 p=(类型*)malloc [数量*sizeof(类型)]
unsigned short;
unsigned int ;
unsigned long;
//以上都定义一个正整数,范围不一样...
类型指针 p=new 类型[数量]
类型指针 p=(类型*)malloc [数量*sizeof(类型)]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询