Re: [計程] 不知道能否有10分強者分享自己的期中考 …
既然有同學須要~~
我就提供一下好了
不過我還是覺得助教的code比較好耶@@
以下第2,3題自己覺得寫得還滿亂的@@ //寫到後來都快搞不清啥是啥了...冏
-----------
1. Bingo
#include<stdio.h>
#define SIZE 600
int p[SIZE*SIZE+1];
int r[SIZE];
int c[SIZE];
int a1=0, a2=0;
int main(){
int n;
int i, j, tmp, x, y, bingo=0;
scanf("%d", &n);
for(i=0; i<n; i++)
for(j=0; j<n; j++){
scanf("%d", &tmp);
p[tmp] = i + n*j;
}
while( scanf("%d", &tmp) != EOF ){
x = p[tmp]/n;
y = p[tmp]%n;
if(++r[x]==n){
bingo = tmp;
break;
}
if(++c[y]==n){
bingo = tmp;
break;
}
if(x+y==n-1)
if(++a1==n){
bingo = tmp;
break;
}
if(x-y==0)
if(++a2==n){
bingo = tmp;
break;
}
}
printf("%d\n", bingo);
return 0;
}
------
2. The Robot
#include<stdio.h>
int board[1002][1002];
int change(int limit, int n){
if(n==-1) return (limit-1);
if(n==limit) return 0;
return n;
}
int main(){
int hx, ly, tmp;
int i, j, rx, ry, x, y;
scanf("%d%d", &hx, &ly);
scanf("%d%d", &rx, &ry);
board[rx][ry] = 1;
scanf("%d", &tmp);
for(i=0; i<tmp; i++){
scanf("%d%d", &x, &y);
board[x][y] = 1;
}
while(1){
if(board[rx][change(ly,ry+1)]==0){
ry = change(ly,ry+1);
board[rx][ry]=1;
}
else if(board[change(hx,rx+1)][ry]==0){
rx = change(hx,rx+1);
board[rx][ry]=1;
}
else if(board[rx][change(ly,ry-1)]==0){
ry = change(ly,ry-1);
board[rx][ry]=1;
}
else if(board[change(hx,rx-1)][ry]==0){
rx = change(hx,rx-1);
board[rx][ry]=1;
}
else
break;
}
printf("%d %d\n", rx, ry);
scanf(" ");
return 0;
}
------
3. The Dictionary
#include<stdio.h>
#include<stdlib.h>
char pr[6], s[27];
int l, length;
int cmp(const void *a, const void *b){
return (*(char*)a - *(char*)b);
}
int vowel(char a){
switch(a){
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
return 1;
default:
return 0;
}
}
void ans(int k){
int i;
if(k==l){
printf("%s\n", pr);
return;
}
for(i=0; i<length; i++){
if(k>0){
if( (!( vowel(pr[k-1])&&vowel(s[i]) )) && pr[k-1]!=s[i] ){
pr[k] = s[i];
ans(k+1);
}
}
else{
pr[k] = s[i];
ans(k+1);
}
}
}
int main(){
int i;
scanf("%s%d", s, &l);
for(i=0; s[i]!='\0'; i++);
length = i;
qsort(s, length, sizeof(char), cmp);
pr[l]='\0';
ans(0);
scanf(" ");
return 0;
}
------
4. Date
#include<stdio.h>
#include<stdlib.h>
int date[1000000][3];
int cmp(const void *a, const void *b){
int i;
int *pa = (int*)a;
int *pb = (int*)b;
for(i=0; i<3; i++){
if( *(pa+i) > *(pb+i) ) return 1;
if( *(pa+i) < *(pb+i) ) return -1;
}
return 0;
}
int main(){
int n, i;
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d%d%d", &date[i][0], &date[i][1], &date[i][2]);
qsort(date, n, sizeof(int)*3, cmp);
for(i=0; i<n; i++)
printf("%d %d %d\n", date[i][0], date[i][1], date[i][2]);
scanf(" ");
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.9.195
推
11/15 00:24, , 1F
11/15 00:24, 1F
推
11/15 00:59, , 2F
11/15 00:59, 2F
→
11/15 01:00, , 3F
11/15 01:00, 3F
→
11/15 01:03, , 4F
11/15 01:03, 4F
推
11/15 01:22, , 5F
11/15 01:22, 5F
推
11/15 01:22, , 6F
11/15 01:22, 6F
推
11/15 01:23, , 7F
11/15 01:23, 7F
推
11/15 01:24, , 8F
11/15 01:24, 8F
→
11/15 07:20, , 9F
11/15 07:20, 9F
→
11/15 07:21, , 10F
11/15 07:21, 10F
→
11/15 07:21, , 11F
11/15 07:21, 11F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 5 篇):