2008. 5. 6. 23:40ㆍETC Programmings
#include <stdio.h>
#include <stdlib.h>
#define True 1
#define False 0
void swapStr(char *base, char *target);
void shift(char *pstr, int n);
void order_char(char *pstr, int n);
double sum_primed_position(double arr[], int n);
void bubble(double arr[], int n);
void
int occurrence(char *pstr, char c);
void zigzag_scan(double *pa, double *pza);
int isPrimed(int number);
void swapStr(char *base, char *target){
char temp = *base;
*base = *target;
*target = temp;
}
// 재귀호출해볼것.
void shift(char *pstr, int n){
int i;
for(i = 1 ; i < n ; i++)
swapStr(pstr, pstr++);
}
void order_char(char *pstr, int n){
int i, j;
for(i = 0 ; i < n ; i++) {
for (j = 0 ; j < n ; j++)
if (pstr[i] < pstr[j])
swapStr(&pstr[i],&pstr[j]);
}
}
double sum_primed_position(double arr[], int n){
double sum = 0;
int num = 2;
while(num <= n){
if(isPrimed(num))
sum += arr[num];
num++;
}
return sum;
}
void bubble(double arr[], int n){
int i, j;
for(i = 0 ; i < n ; i++) {
for (j = 0 ; j < n ; j++) {
if (arr[i] < arr[j])
swap(&arr[i],&arr[j]);
}
}
}
void swap(double* base, double* target){
double temp = *base;
*base = *target;
*target = temp;
};
int occurrence(char *pstr, char c){
int count = 0;
printf("%c\n", c);
while(*pstr != '\0'){
if(*pstr - c == 0)
count++;
pstr++;
}
return count;
}
int isPrimed(int number){
int compareNumber = 2;
while(compareNumber < number){
if(number%compareNumber ==0)
return False;
compareNumber++;
}
return True;
}
void zigzag_scan(double *pa, double *pza){
int i,j;
int count = 0;
for (i = 0; i < 4 ; i++){
for(j = 0; j < 2 ;j++){
pza[count] = pa[j];
count++;
}
pa++;
}
for (i = 0; i < 4 ; i++){
for(j =2; j < 4 ;j++){
pza[count] = pa[j];
count++;
}
pa++;
}
}
int main(int argc, char *argv[])
{
char c_array[128] = "SEOUL";
int num, i, j;
double *a;
double test[] = { 3.2, 3.53, 2.39, 1.00, 78.33, 104.3 };
double coeff[4][4], zz_coeff[16];
double (*p_coeff)[4] = coeff;
// 1번테스트
shift(&c_array[0],5);
printf("%s\n", c_array);
// 2번테스트
order_char(&c_array[0], 5);
printf("%s\n", c_array);
// 3번테스트
if(argc < 2)
num = 10; // 입력되지않는경우원활한테스트를위해서10으로기본값을지정
else {
num= atoi(argv[1]);
a = (double *)calloc(num, sizeof(double));
}
// 4번테스트
printf("4번: %f\n", sum_primed_position(test, 6));
// 5번테스트
bubble(test, 6);
for (i = 0; i < 6 ; i ++){
printf("[%.2f] ", test[i]);
}
// 6번테스트
printf("%d\n", occurrence(c_array,'E'));
// 7번테스트
for(i = 0; i < 4; i++){
for (j = 0; j < 4; j++){
srand(i+j);
coeff[i][j] = rand();
}
}
for(i = 0; i < 4; i++){
for (j = 0; j < 4; j++){
printf("[%.2f] ", coeff[i][j]);
}
printf("\n");
}
for(i = 0 ; i < 16 ; i++){
zz_coeff[i] = 0 ;
}
zigzag_scan(p_coeff, zz_coeff);
for(i = 0 ; i < 16 ; i++){
printf("%.2f ", zz_coeff[i]);
}
}
답으로 이걸 제출을 했습니다.. 7번이 잘 안돌아가죠.. 졸려서 머리도 안돌아 가므로 그냥 틀릴래요;;