本文共 1213 字,大约阅读时间需要 4 分钟。
Description
在n个整数中,查找m出现的位序,如果出现多次,则依次输出。 Input 输入包括两行 第一行:n(0 < n <= 10000)和n个整数 第二行:m Output 输出m在n个整数中出现的位序,如果出现多次则均输出。如果没有找到,输出Not Found。 Sample Input 8 3 1 23 8 3 10 7 3 3 Sample Output 1 5 8#include#include const int maxsize = 12000;typedef struct seqtack{ int *data; int top;}Seq;int empty(Seq s){ if(s.top == 0){ return 1; } return 0;}Seq init(Seq s){ s.data = (int*)malloc(maxsize*sizeof(int)); if(!s.data){ printf("初始化失败"); exit(0); } s.top = 0; return s;}Seq push(Seq s,int x){ if(s.top==maxsize-1){ return s; } else{ s.data[s.top] = x; s.top++; return s; } }void display(Seq s,int k){ int i = 0; if(empty(s)){ printf("栈空\n"); exit(0); } else{ int num = 0; while(num < s.top) { if(s.data[num++] == k) { i = 1; printf("%d ",num); } } } if(i == 0) { printf("Not Found"); }}int main(void){ int n,k; Seq s; s = init(s); scanf("%d",&n); for(int i = 0;i < n;i++) { scanf("%d",&k); s = push(s,k); } scanf("%d",&k); display(s,k); return 0;}
转载地址:http://nhhyk.baihongyu.com/