第8周基础练习
依照学术诚信条款,我保证此作业是本人独立完成的。
温馨提示:
1.本次作业属于Online Judge题目,提交后由系统即时判分。
2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩。
1使用指针输出数组元素(10分)
题目内容:
编写程序,定义大小为20的整型数组,通过指针输入数组元素(9999为结束标志),数据超过20时只接收前20个。通过指针输出数组元素,用空格隔开。
输入:一行中输入若干整数,用空格隔开,9999表示结束。
输出:一行中输出数组元素,用一个空格隔开,末尾无空格。
【注意】本题输入输出不是问题,关键是要用指针操作。除定义数组外,后面的程序中不应出现下标运算。
样例1输入:
1 2 3 4 5 9999
样例1输出:
1 2 3 4 5
时间限制:500ms内存限制:32000kb
C++
#include <iostream>
using namespace std;
int const N = 20;
int a[N];
int input(int *p) {
int n = 0;
cin >> *p;
while (*p != 9999) {
if (++n == N)break;
cin >> *(++p);
}
return n;
}
void print(int *p, int n) {
cout << *p++;
n--;
while (n) {
if (*p == 9999)break;
cout << " " << *p++;
n--;
}
}
int main() {
print(a, input(a));
return 0;
}
用例测试结果 运行时间 占用内存 提示 得分
用例1通过 3ms 236kb
5
用例2通过 2ms 368kb
5
提交答案本次得分/总分:10.00/10.00分
2通过指针输入输出数组元素的函数(10分)
题目内容:
编写两个函数,分别通过指针输入输出数组元素。编写主函数,定义数组,调用函数输入、输出数组元素。输入结束标志位9999,输出数据在一行中用空格隔开,末尾无空格。数据个数不超过100个。函数格式如下:
int input(int *p); //输入,返回输入的元素个数
void print(int *p,int n); //显示数组元素,n为元素个数
输入:一行中输入若干整数,用空格隔开,9999表示结束。
输出:一行中输出数组元素,用一个空格隔开,末尾无空格。
【注意】本题一要用函数,二要用指针,函数中不出现下标运算。主函中数组的定义仍可以用静态数组。
样例1输入:
1 2 3 4 5 9999
样例1输出:
1 2 3 4 5
时间限制:500ms内存限制:32000kb
C++
#include <iostream>
using namespace std;
int const N = 120;
int a[N];
int input(int *p) {
int n = 0;
cin >> *p;
while (*p != 9999) {
if (++n == N)break;
cin >> *(++p);
}
return n;
}
void print(int *p, int n) {
cout << *p++;
n--;
while (n) {
if (*p == 9999)break;
cout <<