/* 给定一个年份和天数,以YYYY-MM_DD形式输出(注意闰年) */ #include <iostream> #include <cstdio> using namespace std; int month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; void convert(int year, int days) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) month[2] = 29; else month[2] = 28; int i = 1; while(days - month[i] > 0) { days -= month[i]; i++; } printf("%d-%02d-%02d/n", year, i, days); } int main() { int year, days; cout << "输入year 和 days:"; cin >> year >> days; convert(year, days); return 0; } /* 约瑟夫环 */ #include <iostream> using namespace std; struct Node { int num; Node *next; }; Node *head; int n; void init() { Node *p, *tail; for (int i = 1; i <= n; i++) { p = new Node; p->num = i; p->next = NULL; if(i == 1) { head = tail = p; continue; } tail->next = p; tail = p; } tail->next = head; } void Joseph(int x) { Node *p = head, *q; while (n) { int i = x; while(--i) { q = p; p = p->next; } cout << p->num << endl; n--; if (n) q->next = p->next; delete p; p = q->next; } } int main() { int x; cout << "输入班级人数和所要报的数:"; cin >> n >> x; init(); Joseph(x); return 0; } /* 建立一个关于职工信息,如年龄,性别,要求输入至少5个职工信息,并输出其中年龄最大的三个职工信息 */ #include <iostream> #include <string> using namespace std; struct Person { string name; int age; string gender; Person *next; }; Person *head,*tail; int n; void createTable() { head = new Person; Person *p, *tail; for (int i = 0; i < n; i++) { cout << "输入name,age,gender:"; p = new Person; cin >> p->name >> p->age >> p->gender; p->next = NULL; if (i == 0) { head->next = p; tail = p; continue; } tail->next = p; tail = p; } } void linkSort() { Person *p, *q, *t; for(p = head->next; p != tail; p = p->next) { t = p; for(q = p->next; q != tail; q = q->next) { if (q->age > t->age) { t = q; } } if (t != p) { string tname; int tage; string tgender; tname = p->name; p->name = t->name; t->name = tname; tage = p->age; p->age = t->age; t->age = tage; tgender = p->gender; p->gender = t->gender; t->gender = tgender; } } } int main() { freopen("3.in", "r", stdin); cout << "输入职工数:"; cin >> n; createTable(); linkSort(); Person *p = head->next; cout << endl; cout << p->name << " " << p->age << " " << p->gender << endl; cout << p->next->name << " " << p->next->age << " " << p->next->gender << endl; cout << p->next->next->name << " " << p->next->next->age << " " << p->next->next->gender << endl; return 0; }