我在學習 C 的程序中,課程的基礎是 C 入門加(第 6 版)。我們使用 Eclipse 作為 IDE。
對于一個專案,我們必須創建陣列。一個陣列在回圈中使用數字,另一個陣列顯示累積值。因此,如果陣列 1 具有值 1、5 和 3(總共 10 個輸入中),則陣列 2 中的結果輸入應為 9(由于陣列 1 中有 3 個輸入,因此在第 3 個輸入上)。
我無法以正確的方式開始 - 這里有人知道我該如何繼續嗎?到目前為止,我已經為初學者準備了這個,但請原諒我它非常弱:
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
void doublearrays (double usernumber);
int main(void)
{
double usernumbers = 0.0;
int loop1 = 1;
while(loop1)
{
printf("Type numbers as doubles. \n");
fflush(stdout);
loop1 = scanf("%lf", &usernumber);
if(loop1)
{
doublearrays(usernumber);
}
}
return 0;
}
uj5u.com熱心網友回復:
家庭作業中的所有文字都應閱讀:
對于一個專案,我們必須創建兩個陣列……總共 10 個輸入……
究竟為什么你不宣告它們?...你已經定義SIZE等等
double usernumbers[SIZE];
double cumulnumbers[SIZE];
接下來幫自己一個忙,一次處理一個問題:
一個在回圈中接受數字的陣列......
好的,所以寫一個最多 10 個讀取浮點數的回圈直接到陣列中,并注意收到了多少個數字
int n;
for(n=0; n<SIZE; n ) {
if (scanf("%lf", &usernumbers[n]) != 1) break;
}
// ok we now have n number in the first array
讓我們繼續
和另一個顯示累積值的陣列。
Ok cumul 最初是 0. 并且在第一個陣列中的每個值上遞增:
double cumul = 0.;
for(int i=0; i<n; i ) {
cumul = usernumbers[i];
cumulnumbers[i] = cumul;
}
uj5u.com熱心網友回復:
(您當前的代碼不是您需要的...洗掉它然后...)
這里有人有我如何繼續的想法嗎?
那么第一步是實際定義一些陣列。
double input[SIZE];
double cum[SIZE];
下一步將是讀取輸入的回圈。
for (int i = 0; i < SIZE; i)
{
if (scanf("%lf", &input[i]) != 1)
{
// Input error - add error handling - or just exit
exit(1);
}
}
下一步是添加用于計算累積值的代碼。
我會把它留給你作為練習。
最后一步是列印陣列,我也將其作為練習留給您。
uj5u.com熱心網友回復:
這樣做的直接方法,它也將使用兩個陣列和一個回圈構造將創建這樣的東西..我已將雙精度數更改為整數。(而且我也忽略了 scanf() 中的任何錯誤)。
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
static void
print_array(int *arr, const char *arr_name)
{
int i;
printf("%s = [");
for (i = 0; i < SIZE; i )
printf("%d%s", arr[i], i < SIZE -1 ? ",":"");
printf("]\n");
}
int main(int argc, char **argv)
{
int i;
int input[SIZE];
int cumsum[SIZE];
for (i = 0; i < SIZE; i )
{
int _input;
printf("Give me numbers!\n");
fflush(stdout);
scanf("%d", &_input); /* assuming integer */
input[i] = _input;
cumsum[i] = i > 0 ? cumsum[i-1] _input : _input;
}
print_array(input, "input");
print_array(cumsum, "cumulative");
return 0;
}
或者如果你想玩轉指標并有一個更緊湊的版本..也許這可能是學習的東西來幫助你理解指標,它和我上面的代碼做同樣的事情
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
static int data[SIZE*2];
int main(int argc, char *argv[])
{
int *input_p = &data[0];
int *cumsum_p = &data[0] SIZE;
for (; input_p != &data[0] SIZE; input_p , cumsum_p )
{
printf("Give me numbers!\n");
scanf("%d", input_p);
*cumsum_p = input_p == &data[0] ? *input_p : *(cumsum_p-1) *input_p;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/324785.html
下一篇:命令列引數值檢查和退出代碼
