#include<stdio.h>
char NUM[]="123.45678";
# define A char NUM[]="123.45678"
int reverse();
int replace();
main(){
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");
}
int reverse( void ){
A;
char temp[100];
char *p1, *p2;
p1 = NUM;
p2 = temp;
while ( *p1 != '\0' ) {
p1++;
}
while (p1 > NUM) {
p1--;
*p2 = *p1;
p2++;
}
*p2 = '\0';
printf( "%s\n",temp);
return 0;
}
int replace(void){
A;
char temp[50],temp2[50];
char *p1,*p2,*p3;
p1=NUM;
p2=temp;
p3=temp2;
while(*p1!='.'){*p2=*p1;p1++;p2++;
}
while(*p1!='\0'){p1++;*p3=*p1;p3++;
}
printf("%s.%s\n",temp2,temp);
return 0;
}
マクロを削除したいです。
マクロを削除したいです。
このプログラムの123.45678と書かなければいけない部分を大域変数char NUM[]="123.45678"の一箇所にしたいです。どうすればよいでしょうか?
Re: マクロを削除したいです。
NUMの内容を書き換える部分が無いので、普通に余計な行を消せばいいでしょう。c learner さんが書きました:このプログラムの123.45678と書かなければいけない部分を大域変数char NUM[]="123.45678"の一箇所にしたいです。どうすればよいでしょうか?
その他バグ修正と微調整もしてみました。
#include<stdio.h>
char NUM[]="123.45678";
int reverse(void); /* voidを追加 */
int replace(void); /* voidを追加 */
int main(void){ /* intとvoidを追加 */
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");
return 0; /* return 0;を追加 */
}
int reverse( void ){
char temp[100];
char *p1, *p2;
p1 = NUM;
p2 = temp;
while ( *p1 != '\0' ) {
p1++;
}
while (p1 > NUM) {
p1--;
*p2 = *p1;
p2++;
}
*p2 = '\0';
printf( "%s\n",temp);
return 0;
}
int replace(void){
char temp[50],temp2[50];
char *p1,*p2,*p3;
p1=NUM;
p2=temp;
p3=temp2;
while(*p1!='.'){*p2=*p1;p1++;p2++;
}
*p2='\0'; /* 追加 (バグ修正) */
while(*p1!='\0'){p1++;*p3=*p1;p3++;
}
printf("%s.%s\n",temp2,temp);
return 0;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)