user-0 提问: 依次输入十个自然数，输出最大的数及其输入次序

回复:
user: user-0
content: 本人初学者忘大家多多帮助

user: user-1
content: 引用 12 楼 BenRenYiGuaShi 的回复:[quote=引用 11 楼 z1179675084 的回复:] [quote=引用 9 楼 BenRenYiGuaShi 的回复:] 思路如下既不改变数组顺序，直接利用冒泡的算法循环一次 就行了  int input[]; int MaxNum; MaxNum = max(input[]);  你看看我七楼的回复，明明很简单的事情非要整那么复杂！！！[/quote]很复杂吗？？呵呵。。。都是那个是思想我只是简单写了操作的步骤而已。。。[/quote]  引用 12 楼 BenRenYiGuaShi 的回复:[quote=引用 11 楼 z1179675084 的回复:] [quote=引用 9 楼 BenRenYiGuaShi 的回复:] 思路如下既不改变数组顺序，直接利用冒泡的算法循环一次 就行了  int input[]; int MaxNum; MaxNum = max(input[]);  你看看我七楼的回复，明明很简单的事情非要整那么复杂！！！[/quote]很复杂吗？？呵呵。。。都是那个是思想我只是简单写了操作的步骤而已。。。[/quote] 淡定，好好看下，关键是这个问题没有必要进行排序！

user: user-2
content: 引用 11 楼 z1179675084 的回复:[quote=引用 9 楼 BenRenYiGuaShi 的回复:] 思路如下既不改变数组顺序，直接利用冒泡的算法循环一次 就行了  int input[]; int MaxNum; MaxNum = max(input[]);  你看看我七楼的回复，明明很简单的事情非要整那么复杂！！！[/quote]很复杂吗？？呵呵。。。都是那个是思想我只是简单写了操作的步骤而已。。。

user: user-1
content: 引用 15 楼 BenRenYiGuaShi 的回复:[quote=引用 13 楼 z1179675084 的回复:] [quote=引用 12 楼 BenRenYiGuaShi 的回复:] [quote=引用 11 楼 z1179675084 的回复:] [quote=引用 9 楼 BenRenYiGuaShi 的回复:] 思路如下既不改变数组顺序，直接利用冒泡的算法循环一次 就行了  int input[]; int MaxNum; MaxNum = max(input[]);  你看看我七楼的回复，明明很简单的事情非要整那么复杂！！！[/quote]很复杂吗？？呵呵。。。都是那个是思想我只是简单写了操作的步骤而已。。。[/quote]  引用 12 楼 BenRenYiGuaShi 的回复:[quote=引用 11 楼 z1179675084 的回复:] [quote=引用 9 楼 BenRenYiGuaShi 的回复:] 思路如下既不改变数组顺序，直接利用冒泡的算法循环一次 就行了  int input[]; int MaxNum; MaxNum = max(input[]);  你看看我七楼的回复，明明很简单的事情非要整那么复杂！！！[/quote]很复杂吗？？呵呵。。。都是那个是思想我只是简单写了操作的步骤而已。。。[/quote] 淡定，好好看下，关键是这个问题没有必要进行排序！[/quote]你笑死我了  。。。 我说排序了吗。。我只说利用冒泡算法的思想，循环一次 你不也循环了一次吗。。。你不是也是利用冒泡算法的思想嘛，，，别开玩笑了，。。[/quote] 你如果非要给我加个排序的思想，那也只能是选择

user: user-2
content: 引用 13 楼 z1179675084 的回复:[quote=引用 12 楼 BenRenYiGuaShi 的回复:] [quote=引用 11 楼 z1179675084 的回复:] [quote=引用 9 楼 BenRenYiGuaShi 的回复:] 思路如下既不改变数组顺序，直接利用冒泡的算法循环一次 就行了  int input[]; int MaxNum; MaxNum = max(input[]);  你看看我七楼的回复，明明很简单的事情非要整那么复杂！！！[/quote]很复杂吗？？呵呵。。。都是那个是思想我只是简单写了操作的步骤而已。。。[/quote]  引用 12 楼 BenRenYiGuaShi 的回复:[quote=引用 11 楼 z1179675084 的回复:] [quote=引用 9 楼 BenRenYiGuaShi 的回复:] 思路如下既不改变数组顺序，直接利用冒泡的算法循环一次 就行了  int input[]; int MaxNum; MaxNum = max(input[]);  你看看我七楼的回复，明明很简单的事情非要整那么复杂！！！[/quote]很复杂吗？？呵呵。。。都是那个是思想我只是简单写了操作的步骤而已。。。[/quote] 淡定，好好看下，关键是这个问题没有必要进行排序！[/quote]你笑死我了  。。。 我说排序了吗。。我只说利用冒泡算法的思想，循环一次 你不也循环了一次吗。。。你不是也是利用冒泡算法的思想嘛，，，别开玩笑了，。。

user: user-3
content: # include <stdio.h> # include <limits.h>  int main() {     int max = INT_MIN;     int input;     int input_round = 0;     int i;     for (i = 0; i < 10; i++)     {         scanf("%d", &input);         if (input > max)         {             max = input;             input_round = i + 1;         }     }     printf("max is %d @ %d\n", max, input_round);      return 0; }

user: user-4
content: 很简单吧！就是基础的冒泡法也能搞定吧！ 而且这个更简单，只要输出最大的，楼主找本书补补基础知识算法！

user: user-2
content: 思路如下既不改变数组顺序，直接利用冒泡的算法循环一次 就行了  int input[]; int MaxNum; MaxNum = max(input[]);

user: user-1
content: 引用 7 楼 z1179675084 的回复:我的个天你们都要把个简单的问题复杂化，看人家要求，输入10个数，找出最大数季输入次序即可。  #include <stdio.h>  int main() { 	int a[10],i,index = 0; 	for(i = 0;i < 10;i++) 	{ 		printf("please input the %d number\n",i + 1); 		scanf("%d",&a[i]); 		if(a[i] > a[index]) 		{ 			index = i; 		} 	} 	printf("The largest number is the %d value is%d  \n",index + 1,a[index]); 	return 0; }  楼主，叫你用这个不是说排序算法不好，只是有特定的场合，这种场合你去排序，就是脱裤子放屁了。但是作为学习的话那些排序算法最好去了解一下。

user: user-1
content: 我的个天你们都要把个简单的问题复杂化，看人家要求，输入10个数，找出最大数季输入次序即可。  #include <stdio.h>  int main() { 	int a[10],i,index = 0; 	for(i = 0;i < 10;i++) 	{ 		printf("please input the %d number\n",i + 1); 		scanf("%d",&a[i]); 		if(a[i] > a[index]) 		{ 			index = i; 		} 	} 	printf("The largest number is the %d value is%d  \n",index + 1,a[index]); 	return 0; }

user: user-5
content: 引用 5 楼 stereoMatching 的回复:要的只是最大的数字和输入次序吧？为何大家都在排序呢？  pseudo codes, 未测试  #include <algorithm> #include <iostream> #include <limits>  int main() {   int nums[10];   int max = std::numerit_limits<int>::min();   std::cout<<"input 10 numbers"<<std::endl;   for(size_t i = 0; i != 10; ++i){     std::cin>>num[0];     max = std::max(num[0], max);   }      std::cout<<"input order : "<<std::endl;   for(size_t i = 0; i != 10; ++i){     std::cout<<num[0]<<std::endl;   }   std::cout<<"maximum num = \n"<<max<<std::endl; }   ++   //#include <algorithm> #include <iostream> //#include <limits>  int main() {   int nums[10];   int max;   std::cout<<"input 10 numbers"<<std::endl;   for(size_t i = 0; i != 10; ++i){     //std::cin>>num[0];     std::cin>>num[i];     if(!i) max = num[i];     if(max < num[i]) max = num[i];   }      std::cout<<"input order : "<<std::endl;   for(size_t i = 0; i != 10; ++i){     //std::cout<<num[0]<<std::endl;     std::cout<<num[i]<<std::endl;   }   std::cout<<"maximum num = \n"<<max<<std::endl; }

user: user-6
content: 要的只是最大的数字和输入次序吧？为何大家都在排序呢？  pseudo codes, 未测试  #include <algorithm> #include <iostream> #include <limits>  int main() {   int nums[10];   int max = std::numerit_limits<int>::min();   std::cout<<"input 10 numbers"<<std::endl;   for(size_t i = 0; i != 10; ++i){     std::cin>>num[0];     max = std::max(num[0], max);   }      std::cout<<"input order : "<<std::endl;   for(size_t i = 0; i != 10; ++i){     std::cout<<num[0]<<std::endl;   }   std::cout<<"maximum num = \n"<<max<<std::endl; }

user: user-7
content: 冒泡排序： void deal(int * a,int size) {       int i, j, tmp;          for (i = 0; i < size; i++) {             for (j = size - 1; j > i; j--) {                 if (a[j] < a[j-1]) {                 tmp = a[j-1];                    a[j-1] =  a[j];                     a[j] = tmp;                 }      }     }   }

user: user-8
content: 引用 楼主 u012520627 的回复:依次输入十个自然数，输出最大的数及其输入次序 用这个程序 刚才的没完成需求 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SIZE 10  void deal(int * elem,int size) {      int i, j, tmp;          for (i = 0; i < size; i++) {             for (j = size - 1; j > i; j--) {                 if (elem[j] < elem[j-1]) {                 tmp = elem[j-1];                    elem[j-1] =  elem[j];                     elem[j] = tmp;                 }      }    }  } int main() {     int i;     int i_elem[MAX_SIZE];     int elem[MAX_SIZE];     printf("input \n");      for (i = 0; i < MAX_SIZE; i++){         scanf("%d",&i_elem[i]);         elem[i] = i_elem[i];      }     deal(i_elem,MAX_SIZE);                  printf("最大数：%d ", i_elem[MAX_SIZE-1]);                  printf("\n输入次序\n");      for (i = 0; i < MAX_SIZE; i++){           printf("%d ", elem[i]);      }      printf("\n");      return 0; }

user: user-8
content: #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SIZE 10  void deal(int * elem,int size) {      int i, j, tmp;          for (i = 0; i < size; i++) {             for (j = size - 1; j > i; j--) {                 if (elem[j] < elem[j-1]) {                 tmp = elem[j-1];                    elem[j-1] =  elem[j];                     elem[j] = tmp;                 }      }    }  } int main() {     int i;     int i_elem[MAX_SIZE];     printf("input \n");      for (i = 0; i < MAX_SIZE; i++){         scanf("%d",&i_elem[i]);      }     deal(i_elem,MAX_SIZE);                  printf("%d ", i_elem[0]);                  printf("\n");      return 0; }

user: user-1
content: 引用 9 楼 BenRenYiGuaShi 的回复:思路如下既不改变数组顺序，直接利用冒泡的算法循环一次 就行了  int input[]; int MaxNum; MaxNum = max(input[]);  你看看我七楼的回复，明明很简单的事情非要整那么复杂！！！

user: user-9
content: 循环一遍，记录最大位置