問題:給定的x和y的整數值會在[x,y]區間內生成20個隨機值,並將它們放入數組中。打印陣列。確定最大偶數負數的索引(範圍從0到19)。考慮陣列中可能沒有這樣的數字的可能性。計算所有正奇數的和。您只能通過 數組值一次。您應該定義獨立的函數來生成隨機數並檢查偶數和奇數。操作隨機數組
我所寫的:
#include <stdio.h>
int random(int min, int max, int arr[]){
int i, j = 1;
for(i = 0; i<20; i++){
arr[i] = min + rand() % (max+1 - min);}
for(i = 0; i<20; i++){
printf("%d. %d\n", j, arr[i]);
j++;}
return arr[20];}
int evenodd(int arr[], int size){
int i, holder, sum, index = 1;
holder = arr[i];
for(i = 0; i<20; i++){
if (holder>0){
if (holder%2 == 0){
sum = sum;}
else{
sum += i;}}
else{
sum = sum;}}
printf("\nThe sum of all odd positive numbers is %d.", sum);
for(i = 1; i<20; i++){
int top = arr[0];
if (arr[i]<0){
if(arr[i]<top){
top = arr[i];
index = i;}
else{
top = top;}}
else{
top = top;}}
printf("\nThe index of the largest negative number is %d", index);}
int main()
{
int min, max;
printf("Please input the minimum desired random number: ");
scanf("%d", &min);
printf("\nPlease input the maximum desired random number: ");
scanf("%d", &max);
int a[20];
random(min, max, a);
evenodd(a, 20);
}
它打印出精美,但正奇數之和是錯的,以及最大負數的指標。
我喜歡OP的(重複)'else {top = top; }'和'sum = sum;'代碼中有很多冗餘,這使得它很難閱讀。 –