#define MAX 100
int run(char input[]) {
int length=strlen(input);//获得字符串长度
int i;
int k;
int m;
int mn;
int temp;
int num[MAX],j=0;
int w[10],iw=0;
for(i=0;i for(i=0;i if(input[i]=='*') { temp=num[j-2]*num[j-1]; j=j-2; for(k=j+1;k num[j]=temp; } else if(input[i]=='/') { temp=num[j-2]/num[j-1]; j=j-2; for(k=j+1;k num[j]=temp; } else if(input[i]=='+') { temp=num[j-2]+num[j-1]; j=j-2; for(k=j+1;k num[j]=temp; } else if(input[i]=='-') { temp=num[j-2]-num[j-1]; j=j-2; for(k=j+1;k num[j]=temp; } else if(input[i]==' ')//空格表示一个数字输入完毕 { mn=0; for(m=iw-1;m>=0;m--) { num[j]=num[j]+w[mn]*pow(10,m); mn++; } j++;iw=0; } else { //int w[10],iw=0; //num[j]=num[j]+(int)input[i]-48; w[iw]=(int)input[i]-48; iw++; } } return num[0]; } void main() { char input[MAX]; gets(input); int result; result=run(input); printf(\ } } 49.为整数编号 成绩: 10 / 折扣: 0.8 使用以下结构 struct nn { int no; int num; }; 建立一个结构数组,从键盘输入若干个整数,保存在数组元素的num成员中,并根据输入的数按从小到大进行编号,将编号保存在no成员中。按整数的输入顺序输出整数及其编号。输入的整数不超过100个,每个整数的绝对值不大于1000,输入时以空格分隔整数。 例如输入:4 3 6 8 2 3 9 输出: 4 4 3 2 6 5 8 6 2 1 3 3 9 7 要求:当两个整数相等时,整数的排列顺序由输入的先后次序决定。例如:输入的第2个整数为3,第6个整数也为3,则将先输入的整数3的编号在前,后输入的整数3的编号在后。编写函数完成为整数编号。 函数原型:int number( char *str, struct nn a[] ); 其中:str:保存以字符串方式接收的键盘输入, a: 保存整数及编号的结构数组的首地址, 函数返回值:已输入的整数的个数。 预设代码 前置代码 view plaincopy to clipboardprint? 1. /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */ 2. 3. #include 9. typedef struct nn DATA; 10. 11. int number( char * , DATA []); 12. 13. int main( ) 14. { 15. DATA b[100]; 16. char sa[500]; 17. int i, n; 18. gets( sa ); 19. n = number( sa, b ); 20. for ( i=0; i 21. printf(\, b[i].num, b[i].no ); 22. return 0; 23. } 24. 25. /* Here is waiting for you 26. int number( char * str, DATA a[] ) 27. { 28. .... 29. } 30. */ 31. 32. /* PRESET CODE END - NEVER TOUCH CODE ABOVE */