這些黃白相間的玫瑰花每10公分的距離種一棵,小甜甜心理在想,隨便一個方塊中,會有多少棵玫瑰呢?
這次的作業,你要計算的是玫瑰的數量,在一個已知位置的矩形中,算出紅黃玫瑰各有多少棵。以下圖為例:
矩形左下角座標為(35, 35),右上角座標為(95, 75),算出的紅玫瑰有12棵,黃玫瑰也有12棵。
本作業基本要求如下:
完成函數void calcRose( int, int, int, int, int *, int *),輸入參數有六個,前四個整數為矩形座標,分別為x1, y1, x2, y2,而(x1, y1)為左下角,(x2, y2)為右上角座標。最後兩個參數為整數指摽,分別代表紅色與黃色玫瑰的數量。
程式的輸入為四個整數,以空白格開,範圍在0~4000(含)之間,當四個值都是 0 時,則程式停止。
程式的輸出為兩個整數,分別為紅色與黃色玫瑰的數量,各佔六格寬度。
主程式呼叫calcRose函數,在求出玫瑰數量後,依格式輸出結果。
範例輸入:
35 35 95 75
30 20 50 30
1000 1005 1008 1055
0 0 0 0
範例輸出:
12 12
3 3
3 2
我的回答是
#include<stdio.h>
#include<stdlib.h>
int calcRose(int x1, int y1, int x2, int y2)
{
int i, j, xi, yi,a,b;
a = b = 0;
xi = x1 % 10 || x1 == 0 ? x1 / 10 : (x1 / 10)+1;
yi = y1 % 10 || y1 == 0 ? y1 / 10 :( y1 / 10)+1 ;
for (i =x1; i <= x2; i++)
{
for (j = y1; j <= y2; j++)
{
if ((i + j) % 2 == 1)
a+=1;
else
b+=1;
}
if (i==x2)
return(a + b);
}
}
int main() {
int a, b, c, d;
typedef int(*op)(int,int,int,int);
op = calcRose;
scanf_s("%d %d %d %d", &a, &b, &c, &d);
printf("%d", op(a, b, c, d));
system("pause");
return 0;
}
請問是哪裡錯了 可以幫忙修正嗎!!!!!!急求
我已經把圖片插入進去 不好意思我也知道要void calcRose( int, int, int, int, int *, int *)可是我是只標出學長 跪求教學啊!!