//从键盘对一个有十个元素的数组任意赋值,并将相同的数删得只剩一个! #include <stdio.h>
void only_arry(int a[],int n); void select_arry(int a[],int n);
void only_arry(int a[],int n) { int i; int j; int ip; int counter; char temp[10]; counter=0; ip=0; for(i=0;i<n;) { temp[ip++]=a[i]; for(j=i+1;j<n;j++) { if(a[j]==a[i]) ++counter; else break; } i+=counter+1; counter=0; } printf("the final arry as following:\n"); for(i=0;i<ip;i++) printf("%5d",temp[i]); printf("\n");
}
void select_arry(int a[],int n) { int i; int j; int k; int temp; for(i=0;i<n;i++) { k=i; for(j=i+1;j<n;j++) { if(a[j]<a[k]) k=j; } if(k!=i) { temp=a[k]; a[k]=a[i]; a[i]=temp; } } }
int main() { int n; int i; int a[10]; n=10; printf("please enter the a_arry's number!\n"); for(i=0;i<n;i++) { printf("please enter the%d arry's number:\n",i+1); scanf("%d",&a[i]); } select_arry(a,n); only_arry(a,n); return 0; }
程序的这种方法是好的 但是错误是存在的 我按照这种思路, 并加如自己的想法 把它重写如下: #include <stdio.h> #include <stdlib.h>
typedef struct { float number; int flag; }arry;
void Replace(arry *,int );
void Replace(arry *point,int a) { int i; int j; for(i=0;i<a;i++) for(j=i+1;j<a;j++) if((point+i)->flag==0&&(point+j)->flag==0&&(point+i)->number==(point+j)->number) (point+j)->flag=1; }
int main() { arry temp[10]; int i; for(i=0;i<10;i++) { printf("please enter the%d number:\n",i+1); scanf("%f",&((temp+i)->number)); (temp+i)->flag=0; } Replace(temp,10); for(i=0;i<10;i++) if(temp[i].flag==0) printf("%5.1f",temp[i].number); printf("\n"); return 0; }
[此贴子已经被作者于2005-5-21 21:18:38编辑过]
程序的这种方法是好的 但是错误是存在的 我按照这种思路, 并加如自己的想法 把它重写如下: #include <stdio.h> #include <stdlib.h>
typedef struct { float number; int flag; }arry;
void Replace(arry *,int );
void Replace(arry *point,int a) { int i; int j; for(i=0;i<a;i++) for(j=i+1;j<a;j++) if((point+i)->flag==0&&(point+j)->flag==0&&(point+i)->number==(point+j)->number) (point+j)->flag=1; }
int main() { arry temp[10]; int i; for(i=0;i<10;i++) { printf("please enter the%d number:\n",i+1); scanf("%f",&((temp+i)->number)); (temp+i)->flag=0; } Replace(temp,10); for(i=0;i<10;i++) if(temp[i].flag==0) printf("%5.1f",temp[i].number); printf("\n"); return 0; }
typedef struct { float number; int flag; }arry; 这里面的最后的 arry是什么意思啊? 还有typedef struct 是结构么?