博文

产生4个(0-9)不同数的方法(2005-08-30 20:09:00)

摘要:int main() { int a[4]; int i=0,j,k,flag; //用了一个flag变量,等于1表示随机已经产生过了 while(1) { i=0; while(i<4) { flag=0; k=rand()%10; for(j=0;j<i;j++) if(a[j]==k) flag=1; if(flag==0) {a[i]=k;i++;} } for(i=0;i<4;i++) printf("%d",a[i]); printf("\n"); getch(); } } ......

阅读全文(5492) | 评论:0

关于用fstream或cin输入数据的问题.(2005-08-30 18:20:00)

摘要:#include <iostream.h> #include <fstream.h> int main() { char s[25]; ofstream f1("data.txt"); f1<<"C++ Programing"; f1.close(); ifstream f2("data.txt"); f2>>s; cout<<s<<endl; f2.close(); return 0; } 前几天有网友问了上面程序输出什么的时候,我看了一下就说是C++ Programing 但在VC++下测试,结果不对,结果只是C++. 考虑了很久,得出结论:用C++的文件流或cin输入字符串数据时候,一遇到空格程序就认为你已经完成了输入了.而把空格后面的数据作为后面的数据. 你可以测试下面的程序. int main() { char s[25]; cin>>s; cout<<s<<endl; } 输入数据:C++ Programing 结果是不是:C++? 所以说用ofstream或cin不可以把有空格的字符串赋给s. 如果有一个程序的确想把C++ Programing赋给s怎么办? 1.首先我们可能会想到scanf() int main() { char s[25]; scanf("%s",s); printf("%s\n",s); } 输入数据:C++ Programing 结果很失望还是:C++? 2.gets() int main() { char s[25]; gets(s); printf("%s\n",s); } 输入数据:C++ Programing 结果是:  C++ Programing 3.cin.getline()经测试也可以. int main() { char s[25]; cin.getline(s); cout<<s<<endl; } 输入数据:C++ Programing 结果是:  C++ Programing 总结:所以如果要把空格的字符串......

阅读全文(3405) | 评论:0

另类排序(2005-08-22 10:19:00)

摘要:void sort(int a[],int n) {int i,j,t;   for(i=0;i<n-1;i++)     for(j=i+1;j<n;j++)       if(a[i]<a[j])   {t=a[i];a[i]=a[j];a[j]=t;} } main()   {int aa[10]={1,2,3,4,5,6,7,8,9,10},i;    sort(&aa[3],5);    for(i=0;i<10;i++)  printf("%d,",aa[i]);    printf("\n");    } 程序运行后的输出结果是 1,2,3,8,7,6,5,4,9,10, sort(&aa[3],5); 是从aa[3]开始起对数组的5个元素从大到小排序. 这样排序排序我也是第一次碰到. ......

阅读全文(2329) | 评论:0

输出三位小数(C++)(2005-08-18 16:47:00)

摘要:#include<iomanip.h>         cout.setf(ios::fixed);         cout<<setprecision(3)<<Msum<<endl;    ......

阅读全文(2073) | 评论:0

浮点数转换成字符串函数(自编函数)(2005-08-18 00:29:00)

摘要:#include<stdio.h> #include <math.h> int float2str(char *s,float a,int len1,int len2) { int b,d; int i; b=(int)a; for(i=0;i<len1;i++) s[i]='0'+(b/(int)pow(10,len1-i-1))%10; s[len1]='.'; d=(int)((a-b)*(int)pow(10,len2)); for(i=0;i<len2;i++) s[i+len1+1]='0'+(d/(int)pow(10,len2-i-1))%10; s[len1+len2+1]='\0'; } int main() { char s[20]; float a=39.2331; float2str(s,a,2,4); printf("%s\n",s); getch(); }......

阅读全文(4305) | 评论:0

表达式求值II(只对整数有效)(2005-08-13 17:53:00)

摘要:int main() {     int len=0,i=0,j;     int m,n,result;     char op;     int number=0;     char enter[100];     int s1[100],top1=0,top2=0;     char s2[100];     s2[top2]='(';top2++;     scanf("%s",enter);     for(i=0;i<strlen(enter);i++)     {         if(enter[i]>='0' && enter[i]<='9')         {             if (enter[i+1]>='0' && enter[i+1]<='9')                 number=10*number+enter[i]-'0';             else         ......

阅读全文(2823) | 评论:0

表达式求值I(只对整数有效)(2005-08-13 17:52:00)

摘要:#include <stdio.h> #include <string.h> struct list {     int index;     int a;     char b; }; struct list s[100]; /*进堆比较*/ int comp1(char a,char b) {     char op[4][2]={'*','/','+','-','(','(',')',')'};     int i;     int a1,b1;     for(i=0;i<4;i++)     if (a==op[i][0] || a==op[i][1])     {         a1=i;         break;     }     for(i=0;i<4;i++)     if (b==op[i][0] || b==op[i][1])     {         b1=i;         break;     }     if (a1<b1) return 1;     else return 0; } int comp2(char a,char b) { &......

阅读全文(3277) | 评论:0

C语言动态申请空间问题(2005-08-08 00:53:00)

摘要:对一位数组,不知道数组大小可以这样做: int *a; int i,n; scanf("%d",&n); a=(int *)malloc(n*sizeof(int)); 这样就相当于C++的定义: int n; int a[n]; cin>>n; 对2位数组操作如下: int **a; int i,m,n; scanf("%d %d",&m,&n); *a=(int **)malloc(m*sizepf(int *)); for (i=0;i<m;i++) a[i]=(int *)malloc(n*sizeof(int)); 这样就相当于C++的定义: int m,n; int a[m][n]; cin>>m>>n; 欢迎大家发表评论. ......

阅读全文(4441) | 评论:2

N皇后问题(2005-08-08 00:42:00)

摘要:#include <stdio.h> int N; int *blow; int **a; int fun(int r,int l) { int i,j; for (i=0;i<N;i++) if (a[i][l]==1 || a[r][i]==1) return 0; for (i=r,j=l;i>=0 && j>=0;i--,j--) if (a[i][j]==1) return 0; for (i=r,j=l;i<N && j<N;i++,j++) if (a[i][j]==1) return 0; for (i=r,j=l;i>=0 && j<N;i--,j++) if (a[i][j]==1) return 0; for (i=r,j=l;i<N && j>=0;i++,j--) if (a[i][j]==1) return 0; return 1; } int main() { int i,j; int row=0,low=0;/*行,列*/ printf("Enter the N:\n"); scanf("%d",&N); /*C语言动态申请问题*/ blow=(int *)malloc(N*sizeof(int)); *a=(int **)malloc(N*sizeof(int *)); for (i=0;i<N;i++) a[i]=(int *)malloc(N*sizeof(int)); /*C语言动态申请问题*/ for (i=0;i<N;i++) for (j=0;j<N;j++) a[i][j]=0; while(1) { if (fun(row,low)) { a[row][low]=1; blow[row]=low; row++; low=0; } else low++; if (row>=N) break; while (low>=N) { row--; low=blow[row]; a[row][low]=0; low++; } } for (i=0;i<N;i++) { for (j=0;j<N;j++) ......

阅读全文(3047) | 评论:0

八皇后(正确版)(2005-08-08 00:32:00)

摘要:#include <stdio.h> int blow[8]; int a[8][8]; int fun(int r,int l) { int i,j; for (i=0;i<8;i++) if (a[i][l]==1 || a[r][i]==1) return 0; for (i=r,j=l;i>=0 && j>=0;i--,j--) if (a[i][j]==1) return 0; for (i=r,j=l;i<=7 && j<=7;i++,j++) if (a[i][j]==1) return 0; for (i=r,j=l;i>=0 && j<=7;i--,j++) if (a[i][j]==1) return 0; for (i=r,j=l;i<=7 && j>=0;i++,j--) if (a[i][j]==1) return 0; return 1; } int main() { int i,j; int row=0,low=0;/*行,列*/ for (i=0;i<8;i++) for (j=0;j<8;j++) a[i][j]=0; while(1) { if (fun(row,low)) { a[row][low]=1; blow[row]=low; row++; low=0; } else low++; if (row>=8) break; while (low>=8) { row--; low=blow[row]; a[row][low]=0; low++; } } for (i=0;i<8;i++) { for (j=0;j<8;j++) { if (a[i][j]) printf("Q"); else printf("o"); } printf("\n"); } getch(); }......

阅读全文(2737) | 评论:3