変数やマクロの追加なしでプログラムを完成させたい。
Posted: 2015年12月19日(土) 20:33
コメントの仕様通りにsumを作ろうとしたのですがうまく作ることができません。どうすればよいでしょうか?
#include<stdio.h>
char NUM[]="123.45678";
# define c2n(c) (( (c)>='0' && (c)<='9' )?(c)-'0':(c))
int reverse();
int replace();
int sum(char *p);
main(){
char *ptr;
ptr=NUM;
printf("abc.def->fed.cba:\t%s->",NUM);
reverse();
putchar('\n');
printf("abc.def->def.abc:\t %s->",NUM);
replace();
putchar('\n');
printf(" \t\t\t-----------\n");
ptr=NUM;
printf(" \t\t\t+%5d\n",sum(ptr));
}
int reverse( void ){/*123.45678を87654.321即ちNUMの中の配列を逆順に表示する関数*/
char temp1[100];
char *p1, *p2;
p1 = NUM;
p2 = temp1;
while ( *p1 != '\0' ) {
p1++;
}
while (p1 > NUM) {
p1--;
*p2 = *p1;
p2++;
}
*p2 = '\0';
printf( "%s\n",temp1);
return 0;
}
int replace(void){/*123.45678を45678.123に即ちNUMの中の配列の小数部分と整数部分を入れ変え表示する関数*/
char temp2[50],temp3[50];
char *p1,*p2,*p3;
p1=NUM;
p2=temp2;
p3=temp3;
while(*p1!='.'){*p2=*p1;p1++;p2++;
}
*p2='\0';
while(*p1!='\0'){p1++;*p3=*p1;p3++;
}
printf("%s.%s\n",temp3,temp2);
return 0;
}
int sum(char *p){/*生成した2個の数値の整数部分の和を画面表示する。 num_aは逆順の数値,num_bは整数部分と小数部分を入れ替えた数値. 変数、マクロ、関数追加はなしマクロc2nは利用可*/
int num_a=0,num_b=0;
}