就像我想将“ return 0”放在正确的位置,代码中的所有内容都正常工作。
编译代码,他们不断说“返回之前”,我试图将代码放在代码之外]
#include <stdio.h> #include <stdlib.h> #define MAXN 100 int menu(){ printf("Menu:\n"); printf("1- Add a value\n"); printf("2- Search a value\n"); printf("3- Print out the array\n"); printf("4- Print out values in a range\n"); printf("5- Print out the array in ascending order\n"); printf("6- Quit?\n"); printf("Enter your operation: "); int choice; scanf("%d", &choice); return choice; } int isFul (int*a, int n){ return n==MAXN; } int isEmpty (int*a, int n){ return n==0; } void add(int value, int*a, int*pn){ a[*pn] = value; (*pn)++; } int search(int x, int *a, int n){ int i; for (i=0; i<n; i++) if (a[i]==x) return i; return -1; } void printvalueinrange (int*a, int n){ int i, min, max; printf("\nEnter min value: ");scanf("%d", &min); printf("\nEnter max value: ");scanf("%d", &max); for(i=0; i<sizeof(a); i++) if(a[i]>=min&&a[i]<=max) printf("%d", a[i]); } void printarray(int*a, int n){ int i; for (i=0;i<n;i++) printf("%d", a[i]); } void printAsc(int*a, int n){ int** adds =(int**)calloc(n, sizeof(int*)); int i,j; for(i=0; i<n; i++) adds[i]= &a[i]; int* t; for (i=0;i<n-1; i++) for(j=n-1; j>i; j--) if (*adds[j]< *adds[j-i]){ t=adds[j]; adds[j]=adds[j-1]; adds[j-1]=t; } for (i=0;i<n; i++) printf("%d ", *adds[i]); free(adds); } int main(){ int a[MAXN]; int n=0; int value; int choice; do { choice= menu(); switch(choice){ case 1:{ if (isFull(a,n)) printf("\n Sorry! The array is full.\n"); else { printf ("Input an added value:"); scanf("%d", &value); add(value, a, &n); printf("Added!\n"); } break; } case 2:{ if (isEmpty(a,n)) printf("\n Sorry! The array is empty.\n"); else { printf ("Input the searched value:"); scanf("%d", &value); int pos = search(value, a, n); if (pos<0) printf("Not found!\n"); else printf("Postion is found: %d\n", pos); } break; } case 3:{ if (isEmpty(a,n)) printf("\n Sorry! The array is empty.\n"); else { printarray(a,n); } break; } case 4:{ if (isEmpty(a,n)) printf("\n Sorry! The array is empty.\n"); else { printvalueinrange(a,n); } break; } case 5:{ if (isEmpty(a,n)) printf("\n Sorry! The array is empty.\n"); else { printAsc(a,n); } break; } default: printf ("Goodbye!"); break; } while (choice>0 && choice<7); getchar(); } return 0; }
我只是添加一些单词以符合要求:“ D而且,如果您发现我的代码中存在任何类型的错误或错误,请为我指出以改进它们xd
就像我想在正确的位置放置“返回0”一样,代码中的所有内容都正常工作。编译代码,他们不断说“返回之前”,我试图把代码放在外面...
在主体的此部分