0201
输入一个含有n个数的数组,使用C++中的 new 指令给数组开内存,要求开刚好足够的内存,数据类型为 int
然后往数组里输入 n 个数
最后将数组打印出来
输入要求:
输入数据有多组
每组数据第一行输入一个整数n(0<n<100),表示数组长度为n
接下来一行输入n个数存入数组当中
输出要求:
每组依次输出数组中的数,每个数后面有一个空格,每组数据打印结束后换行。
数据示例1:
输入:
5
1 2 3 4 5
输出:
1 2 3 4 5
#include<stdio.h>
int* createArray(int n); // 动态开辟内存空间并读入n个整数
int main(){
int n;
while(~scanf("%d", &n)){
int *p = createArray(n);
for(int i=0; i<n; i++){
printf("%d ", p[i]);
}
printf("\n");
delete[] p;
}
}
int* createArray(int n)
{
int *p=new int[n];
for(int i=0;i<n;i++)
{
scanf("%d",&p[i]);
}
return p;
}
0202
打印存储在结构体变量中的学生信息
输入要求:
多组输入。每组输入包括学号,学生姓名,学生生日(包括年,月,日)。
输出要求:
每个学生信息占一行。包括:学号 姓名 生日
生日的输出格式为 yyyy-mm-dd,即4位整数代表年,2位整数代表月,2位整数代表日。
数据确保输入的日期合法,并且年为4位整数,如果月和日不足2位数,则前面补0
数据示例1:
输入:
20201 张三 2000 1 1
20202 李四 2002 12 12
输出:
20201 张三 2000-01-01
20202 李四 2002-12-12
#include<stdio.h>
struct date {
int year, month, day;
};
struct student{
int id;
char name[20];
date bd;
};
void output(student s);
int main(){
student s;
while(~scanf("%d %s %d %d %d", &s.id, s.name, &s.bd.year, &s.bd.month, &s.bd.day))
{
output(s);
}
}
void output(student s)
{
printf("%d %s %d-%02d-%02d\n",s.id, s.name, s.bd.year, s.bd.month, s.bd.day);
}
0203
输入一串字符串,使用指针,将字符串中选择的位置下标后面的子串打印出来
输入要求:
数据有多组
第一行输入一个字符串 ( 2 =< len <= 100)
第二行输入一个值 n ( 1 <= l <= 50 ),表示要打印的次数
接下来输入 n 个数x,表示要截取的下标
输出要求:
输出n个下标从 x 到 len - 1的子串,每个子串后需要换行
数据示例1:
输入:
abcdefghijk
4
3 4 5 6
输出:
defghijk
efghijk
fghijk
ghijk
#include <stdio.h>
#include <string.h>
int main()
{
char a[100];
int n,x,i,l;
while(~scanf("%s",&a))
{
l=strlen(a);
scanf("%d",&n);
while(n--)
{
scanf("%d",&x);
for(i=x;i<l;i++)
{
printf("%c",a[i]);
}
printf("\n");
}
}
}
0204
在数组指定下标位置插入一个元素
输入要求:
第一行,输入数组的长度n,插入元素的下标m和插入元素的值x
第二行,输入n个数组元素
输入确保0<=n<=100, 0<=m<=n
输出要求:
输出插入操作后数组元素的值
数据示例1:
输入:
n m x
6 0 111
1 3 5 2 4 6
6 6 111
1 3 5 2 4 6
6 2 111
1 3 5 2 4 6
输出:
111 1 3 5 2 4 6
1 3 5 2 4 6 111
#include<stdio.h>
void insert(int *a,int n,int m, int x);
void output(int *a,int n){
for(int i = 0;i < n;i++){
if(i)
printf(" ");
printf("%d",a[i]);
}
puts("");
}
int main(){
int n,m,x;
int a[105];
while(~scanf("%d %d %d",&n,&m,&x)){
for(int i = 0;i < n;i++){
scanf("%d",&a[i]);
}
insert(a,n,m,x);
output(a, n+1);
}
}
void insert(int *a,int n,int m, int x)
{
int i=0,j=0,b[100];
for(i=n-1;i>=m;i--)
{
a[i+1]=a[i];
}
a[m]=x;
n++;
}