博文
打印菱形(2008-03-19 23:14:00)
摘要:最早的版本:#include <stdio.h>
int main(){ int k1 = 5 , k2 = 1; int i,j; do { for (i=1 ; i <= k1-1 ; i++) printf (" "); for (j=1 ; j <= k2 ; j++) printf("*"); printf("\n"); k1=k1-1; //每行*号前的空格相差1个 k2+=2; // 每行的*号个数相差2个 } while (k1 >1 ); //注释:下 /* 原先之所以输出 * ***** *** * 这样,是因为将判断条件错误的写为k1<=0,于是第一次循环执行了k1=k1-1后,K值为2不满足k1<=0 于是结束了循环
*/
int k3=1, k4 =5; int i2 , j2;
do { for (i2=1; i2 <= k3+1 ; i2++ ) printf (" "); for (j2=1 ; j2 <= k4 ; j2++ ) printf ("*"); printf ("\n"); k3++; k4-=2;
} while (k3 ......
<算法 i~iv>-4.11(2008-03-09 17:13:00)
摘要://///////////////////////////////////////////////////////////// <算法 i~iv> // // Exercise : 4.11 , Page : 103//// exercises description:// 给定两个序列,给出算法来判断是否可以在序列中插入星号,// 使得第一个序列可以生成第二个序列.生成规则由练习4.10来解释.//// zhaoyg 2008.3.5/////////////////////////////////////////////////////////////
#include <stdio.h>#include <stdlib.h>#include <string.h>
#define MAX 20
int main(){ int source[2][MAX]; int (*p_source)[MAX]=source;
int target[MAX]; int *p_target=target;
int lenth_between_sur_tar=0 , count_lenth_source=0 ,temp; int i , j , end ,count=0;
//printf("enter source string\n");
while (1) { lenth_between_sur_tar=0 , count_lenth_source=0 ; printf("enter source string\n"); while((temp=getchar())!='\n') { p_source[0][count_lenth_source]=temp; p_source[......
<算法 i~iv>-3.43(2008-03-09 17:12:00)
摘要:////////////////////////////////////////////// <算法 i~iv> // // Exercise : 3.43 , Page : 75// exercise description:// 实现一个程序,互换一个双向链表中两个给定的节点的位置.// // P.S: 对于相邻节点尚未考虑,还需几行代码即可// zhaoyg 2008.2.////////////////////////////////////////////
#include <iostream>
using namespace std;
const int times = 10;
struct node { int item; node *prev; node *next;
node (int value , node *p , node *n) { item = value; prev = p; next = n; }};
void creat_node(node **head,int times);void test_list(node *temp);void transposition(node **head,int item_1,int item_2);void free_list(node *head);
int main(){ node *head = NULL; node *temp; int item_a,item_b;
cout <<"请输入需要交换节点的位置,用空格分隔\n当前链表中共有"<<times<<"个节点"<<endl; cin >> item_a >> item_b; creat_node (&head,times);
temp =......
<算法 i~iv>-3.41(2008-03-09 17:10:00)
摘要:////////////////////////////////////////////// <算法 i~iv> // // Exercise : 3.41 , Page : 75// exercise description:// 实现程序3.11的一个使用头节点的版本// // P.S : 有时候不使用哑元节点确实麻烦// zhaoyg 2008.1.24////////////////////////////////////////////
#include <iostream>#include <fstream>#include <cstdlib>#include <ctime>
using namespace std;
struct node{ int item; node *next; node(int x,node *t) { item=x; next=t; }};
int main(){ ofstream outf; outf.open("result.txt");
node *head_a=NULL; node *a=NULL , *t; node *temp;
srand( (unsigned)time( NULL ) );
for (int i=0;i<50;i++) { if (head_a==NULL)&nbs......
<算法 i~iv>-3.35(2008-03-09 17:08:00)
摘要://////////////////////////////////////// <算法 i~iv> // // Exercise : 3.35 , Page : 75//// exercises description:// 编写一个函数,重新排列一个链表.使偶数位置的节点集中到链表后半部分,奇数位置节点集中// 到链表前半部分,同时分别使奇数位节点和偶数位节点之间的顺序保持不变.//// zhaoyg 2008.1.22//////////////////////////////////////
#include <iostream>using namespace std;
struct list{ int content; list * next;};
void fun (list * head);
int main(){ list *head = NULL,*current,*temp; int value; cout << "enter value,q to quit\n"; while (cin >> value) { if (head==NULL) current = head = new list; else { &nb......
