2018/12/17

149 阅读1分钟

徐永广实验4 某题

1.

void main()
{
	char *p, s[] = "ABCDEFG";
	for (p = s; *p != '\0'; p++)
		cout << *p << endl;
}

输出为:

A
B
C
D
E
F
G

若cout<< *p 改为cout<< p

void main()
{
	char *p, s[] = "ABCDEFG";
	for (p = s; *p != '\0'; p++)
		cout << p << endl;
}

则输出为

ABCDEFG
BCDEFG
CDEFG
DEFG
EFG
FG
G

输出 *p 时是单指数组中一个元素

输出 p 时则是以p指向的s[0]开始输出一直到'\0',然后p++后p指向s[1]开始输出一直到'\0'

是这样解释吗?

2.该日在本年度中是第几天,用结构体

#include <iostream>
using namespace std;
struct Date
{
	int year;
	int month;
	int day;
};
int days(Date, int);
int day_sum = 0;
int main()
{
	Date date;
	cout << "请输入 年、月、日" << endl;
	cin >> date.year >> date.month >> date.day;
	day_sum = days(date, day_sum);
	cout << date.month << "月" << date.day << "日是"<< date.year << "年的第" << day_sum << "天"<< endl;
	return 0;
}
int days(Date date, int day_sum)
{
	int m;
	int day_month[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
	for (m = 1; m < date.month; m++)
		day_sum = day_sum + day_month[m - 1];
	day_sum = day_sum + date.day;
	if ((date.year % 4 == 0 && (date.year % 100 != 0|| date.year % 400 == 0)) && date.month >= 3)
		day_sum++;
	return day_sum;
}

很不错的结构体算天数

3.输入的参数值建立不同的动态数组

...
#include <string.h>
...
char * f = new char[n];
...

new一个 数组为f[ ]