C++编程实现用指针输入输出数组元素
3个回答
展开全部
可以定义一个一个指针和一个数组
然后将该指针指向数组的首地址
然后循环读取数据
将数据存储进当前指针所指的内存地址并移动指针到下一个位置
输入完成后再将该指针指向数组的首地址
再一次循环输出
将当前指针所指向的地址内的内容输出并移动指针到下一个位置
这样程序就完成了
下面是一个简单的代码示例
#include <iostream>
using namespace std;
int main(int argc,char **argv)
{
char s[5];
char *p;
int i;
p=s; //将指针指向数组
//输入
for(i=0;i < 5;++i)
{
cin>>*p;
++p; //指针向后移动一位
}
p=s; //再次指向数组首地址
//输出
for(i=0;i < 5;++i)
{
cout<<*p<<endl;
++p; //移动指针到下一位
}
return 0;
}
展开全部
#include <iostream>
using namespace std;
int main()
{int a[10];
int i,*p=a;
for(i=0;i<10;i++)
cin>>*(p+i);
cout<<endl;
for(p=a;p<(a+10);p++)
cout<<*p<<" ";
cout<<endl;
return 0;
}
using namespace std;
int main()
{int a[10];
int i,*p=a;
for(i=0;i<10;i++)
cin>>*(p+i);
cout<<endl;
for(p=a;p<(a+10);p++)
cout<<*p<<" ";
cout<<endl;
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream>
#include <math.h>
using namespace std;
bool numIsPrime (int num) {
int i;
int iSqrt = sqrt(num);
for (i = 2; i <= iSqrt; ++i) {
if(num % i == 0)return false;
}
return true;
}
void sortAsDsc (int arr[]) {
int i, k;
int iTmp;
for (i = 0; i < 10 - 1; ++i) {
for (k = 0; k < 10 - 1 - i; ++k) {
if (arr[k] < arr[k + 1]) {
iTmp = arr[k];
arr[k] = arr[k + 1];
arr[k + 1] = iTmp;
}
}
}
}
int main() {
int arr[10];
int i = 0;
int max;
int min;
int iTmp;
while(i < 10) {
cin >> arr[i++];
}
max = 0;
min = 0;
for (i = 0; i < 10; ++i) {
cout << arr[i] << " ";
if (arr[i] > arr[max])max = i;
if (arr[i] < arr[min])min = i;
}
cout << endl << endl;
iTmp = arr[max];
arr[max] = arr[min];
arr[min] = iTmp;
for (i = 0; i < 10; ++i) {
cout << arr[i] << " ";
}
cout << endl << endl;
for (i = 0; i < 10; ++i) {
if (numIsPrime(arr[i]))cout << arr[i] << " ";
}
cout << endl << endl;
sortAsDsc(arr);
for (i = 0; i < 10; ++i) {
cout << arr[i] << " ";
}
cout << endl << endl;
return 0;
}
#include <math.h>
using namespace std;
bool numIsPrime (int num) {
int i;
int iSqrt = sqrt(num);
for (i = 2; i <= iSqrt; ++i) {
if(num % i == 0)return false;
}
return true;
}
void sortAsDsc (int arr[]) {
int i, k;
int iTmp;
for (i = 0; i < 10 - 1; ++i) {
for (k = 0; k < 10 - 1 - i; ++k) {
if (arr[k] < arr[k + 1]) {
iTmp = arr[k];
arr[k] = arr[k + 1];
arr[k + 1] = iTmp;
}
}
}
}
int main() {
int arr[10];
int i = 0;
int max;
int min;
int iTmp;
while(i < 10) {
cin >> arr[i++];
}
max = 0;
min = 0;
for (i = 0; i < 10; ++i) {
cout << arr[i] << " ";
if (arr[i] > arr[max])max = i;
if (arr[i] < arr[min])min = i;
}
cout << endl << endl;
iTmp = arr[max];
arr[max] = arr[min];
arr[min] = iTmp;
for (i = 0; i < 10; ++i) {
cout << arr[i] << " ";
}
cout << endl << endl;
for (i = 0; i < 10; ++i) {
if (numIsPrime(arr[i]))cout << arr[i] << " ";
}
cout << endl << endl;
sortAsDsc(arr);
for (i = 0; i < 10; ++i) {
cout << arr[i] << " ";
}
cout << endl << endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询