[英]Finding largest number in c program
簡而言之,輸入10個工資,計算提成,總帶回家,打印最高帶回家。 我能夠得到最高的數字,但輸入的數字,而不是帶回家的數字(我計算出來的)。 我想知道我是如何做到這一點的,因為我沒有存儲我正在計算的帶回家的價值? 這是我的問題嗎? 請看下面的代碼。
#include <stdio.h>
int main()
{
int num[10];
int i = 0;
int largest;
int com, totaltakehome, finalsalary;
while(i < 10)
{
printf("Enter salesperson salary for week[%d]:", i + 1);
scanf("%d", &num[i]);
com = num[i] / 100 * 7;
printf("Commision is %d\n", com);
totaltakehome = 300 + com;
printf("Total takehome is %d\n", totaltakehome);
printf("\n");
}
largest = num[0];
i = 0;
while(i < 10)
{
if(num[i] > largest)
{
largest = num[i];
}
i++;
}
printf("\nHighest salary is : %d\n", largest);
return 0;
}
由於不需要之前輸入的工資來計算...
...您可以跳過num[10]
數組。
i
。 i+1
是一個不改變i
值的表達式。 我建議為此使用for
循環,它將i
的聲明、條件( i < 10
)和增量很好地保存在一個地方。scanf
的返回值。 如果你掃描一件事,它應該返回1
,否則它會失敗。totaltakehome
。 您當前在每個循環中為其分配一個新值。例子:
#include <stdio.h>
int main() {
int largest = 0; // initialized (and assuming this can't be negative)
int totaltakehome = 0; // initialized
for(int i = 0; i < 10; ++i) { // loop with increment
printf("Enter salesperson salary for week[%d]:", i + 1);
int num;
if(scanf("%d", &num) != 1) { // check for success
fprintf(stderr, "user error, aborting\n");
return 1;
}
// an alternative commission forumla
int com = num * 7 / 100; // perhaps a more fair commission
printf("Commision is %d\n", com);
// save this commission if it's the largest so far:
if(com > largest) largest = com;
// Add to `totaltakehome` - don't assign:
totaltakehome += 300 + com; // note: `+=`, not `=`
printf("\n");
}
// print results after the loop:
printf("Largest commision %d\n", largest);
printf("Total takehome is %d\n", totaltakehome);
}
我們可以使用基本的 for 循環作為答案。
int old = arr[0];
for (i = 0; i < 10; i++) {
if (arr[i] > old) old = arr[i];
}
return old;
首先我們創建一個運行十次的循環,或者我們也可以使用
sizeof(arr)/sizeof(arr[0])
對於未知的列表類型。 原諒我是手機。
然后我們檢查下一個數字是否大於我們以前已知的最大數字,如果是,則將其設置為最大的。 如果是這樣,我們將把它設置為我們最大的。 然后我們最終返回我們的值。 (這是一個 function 順便說一句)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.