課程
/后端開發
/C
/C語言入門
結果怎么出來的,為什么是10,,,,能不能對其中的一個結果的由來舉個例子
2016-06-16
源自:C語言入門 6-4
正在回答
#include <stdio.h>
void replaceMax(int arr[],int value)
{
? ? int max = arr[0]; ? ? /*max=10*/
? ? int index = 0;
? ? int i;
? ? for(i=1;i<5;i++)
? ? {
? ? ? ? if(arr[i]>max) ?/*41>10? ,3>41? , 12>41? , 22>41?*/
? ? ? ? {
? ? ? ? ? ? ?max=arr[i]; ? ?//將數組中較大的數賦值給max, ? max=41
? ? ? ? ? ? index = i; ?//記錄當前索引, ? index=1
? ? ? ? } ? ? ? ? ? ? ? ?
? ? } ?
? ? arr[index] = value; ? /*arr[1]=1,將1賦值給arr[1]*/
}
int main()
? ? int arr1[] = {10,41,3,12,22};
? ? int arr2[] = {1,2,3,4,5};
? ? replaceMax(arr1 ,arr2[0] ); //將數組arr1和數組arr2的第一個元素傳入函數中
? ? for(i=0;i<5;i++) ? ? ? ? ? ?/*將數組arr1[i]輸出,其中arr[1]被替換,arr[1]=10*/
? ? ? ? printf("%d ",arr1[i]); ? ? ? ? ? ? ? ?
? ? }
? ? return 0; ? ?
? ? int max = arr[0];
? ? ? ? if(arr[i]>max)
? ? ? ? ? ? max = arr[i]; ? ? ? ?//將數組中較大的數賦值給max
? ? ? ? ? ? index = i; ?//記錄當前索引
? ? arr[index] = value;
? ? replaceMax(arr1, arr2[0]); //將數組arr1和數組arr2的第一個元素傳入函數中
? ? for(i=0;i<5;i++)
因為arr1[]中最大值是arr[1] = 41,所以max = arr[1]; 但是最后又將arr2[0] = 1,即是value的值賦給了arr[1].?? ?arr[index] = value; ?所以最終輸出結果為10 , 1, 3, 12 ,22.相當于將arr1[]數組中的最大數換成了arr2[0],然后再將arr1[]輸出。希望能夠幫助到你。
missyou012 提問者
酸甜果汁分你一半 回復 missyou012 提問者
qq_淡末初夏_03336219 回復 酸甜果汁分你一半
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
1 回答結果為什么是0,不是10
1 回答為什么算出來結果是0?
2 回答為什么我的結果出來是71.199997元.....
2 回答為什么結果是10歲求教
1 回答這個結果怎么來的a>3結果為什么是1呢 怎么算的
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-07-15
#include <stdio.h>
void replaceMax(int arr[],int value)
{
? ? int max = arr[0]; ? ? /*max=10*/
? ? int index = 0;
? ? int i;
? ? for(i=1;i<5;i++)
? ? {
? ? ? ? if(arr[i]>max) ?/*41>10? ,3>41? , 12>41? , 22>41?*/
? ? ? ? {
? ? ? ? ? ? ?max=arr[i]; ? ?//將數組中較大的數賦值給max, ? max=41
? ? ? ? ? ? index = i; ?//記錄當前索引, ? index=1
? ? ? ? } ? ? ? ? ? ? ? ?
? ? } ?
? ? arr[index] = value; ? /*arr[1]=1,將1賦值給arr[1]*/
}
int main()
{
? ? int arr1[] = {10,41,3,12,22};
? ? int arr2[] = {1,2,3,4,5};
? ? int i;
? ? replaceMax(arr1 ,arr2[0] ); //將數組arr1和數組arr2的第一個元素傳入函數中
? ? for(i=0;i<5;i++) ? ? ? ? ? ?/*將數組arr1[i]輸出,其中arr[1]被替換,arr[1]=10*/
? ? {
? ? ? ? printf("%d ",arr1[i]); ? ? ? ? ? ? ? ?
? ? }
? ? return 0; ? ?
}
2016-06-19
#include <stdio.h>
void replaceMax(int arr[],int value)
{
? ? int max = arr[0];
? ? int index = 0;
? ? int i;
? ? for(i=1;i<5;i++)
? ? {
? ? ? ? if(arr[i]>max)
? ? ? ? {
? ? ? ? ? ? max = arr[i]; ? ? ? ?//將數組中較大的數賦值給max
? ? ? ? ? ? index = i; ?//記錄當前索引
? ? ? ? } ? ? ? ? ? ? ? ?
? ? } ?
? ? arr[index] = value;
}
int main()
{
? ? int arr1[] = {10,41,3,12,22};
? ? int arr2[] = {1,2,3,4,5};
? ? int i;
? ? replaceMax(arr1, arr2[0]); //將數組arr1和數組arr2的第一個元素傳入函數中
? ? for(i=0;i<5;i++)
? ? {
? ? ? ? printf("%d ",arr1[i]); ? ? ? ? ? ? ? ?
? ? }
? ? return 0; ? ?
}
因為arr1[]中最大值是arr[1] = 41,所以max = arr[1]; 但是最后又將arr2[0] = 1,即是value的值賦給了arr[1].?? ?arr[index] = value; ?所以最終輸出結果為10 , 1, 3, 12 ,22.相當于將arr1[]數組中的最大數換成了arr2[0],然后再將arr1[]輸出。希望能夠幫助到你。