hannah93135
|
分享:
▼
x0
|
[C/C++][求助] 有個ACM10141的問題
我在輸入的地方就發生問題了 可是我不知道是哪裡錯了 可不可以幫我看看阿~~~ 拜託拜託了~(急) thx^^ 對了!這裡是題目↓↓ #include<stdio.h> #include<stdlib.h> #include<string.h> int orfin; char name_fin; void swap(int*,int*); void bubble(int*[],int*[],int); int main() { int n,p,i,j,k,cheap,flag,num=0; while(1) {scanf("%d %d",&n,&p); if(n==0&&p==0) break; char need,com_name; double d; int r,ra,or; num+=1; for(i=0;i<n;i++) gets(need); for(i=0;i<p;i++) { or=i; ra=0; gets(com_name); .. 訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容
[ 此文章被hannah93135在2008-07-05 00:10重新編輯 ]
|
|
x0
[樓 主]
From:臺灣中華電信 | Posted:2008-07-04 20:58 |
|
|
daviddr
|
分享:
▲
▼
ACM 一般是讀文字檔作為輸入,非手動輸入。 這是我的解法,妳可以對照著去 debug。 複製程式
int main()
{
FILE* f;
float cost[100], max_cost;
int chk[100], max_chk;
int round=0, i, n, p, nCo, nItem, i_cost, i_chk;
char co[100][80], t[80];
f = fopen ("rfp.txt", "rt");
while (!feof(f))
{
round++;
fscanf (f,"%d %d\n", &n, &p);
if (0 == n+p) break;
for (i=0; i<n; i++) fgets (t,80,f);
max_cost = max_chk = i_cost = i_chk = 0;
for (i=0; i<p; i++) {
fgets (co[i],80,f);
fscanf (f,"%f %d\n", cost+i, chk+i);
for (n=0; n<chk[i]; n++) fgets (t,80,f);
if (chk[i] > max_chk) max_chk = chk[i], i_chk = i;
}
for (n=i=0; i<p; i++)
if (chk[i] == max_chk) n++;
if (n > 1)
for (i_chk=i=0; i<p; i++)
if (chk[i] == max_chk && cost[i] > max_cost)
max_cost = cost[i], i_chk = i;
printf ("RFP #%d\n%s\n", round, co[i_chk]);
}
fclose(f);
getch();
return 0;
}
|
|
x0
[1 樓]
From:臺灣中華 | Posted:2008-07-06 05:04 |
|
|
|