文字列resultのアドレスを関数に渡して、その値を変更したいのですが、文字列が変わらず、”初期文字列”のままです。
文字列のアドレス渡しは、できないのでしょうか?
C
1#include <stdio.h> 2#include <stdlib.h> 3#include <time.h> 4 5int hantei(int ran, int iti, int hani, char *result); 6int main() 7{ 8 srand((unsigned)time(NULL)); 9 int ran = rand() % 100 + 1; 10 int i, iti, hani, flg = 0; 11 char *result = "初期文字列"; 12 13 puts("☆レーダー☆"); 14 puts("ターゲットとして 0~100 のうち1つの数が設定されます。探索する位置と範囲を入力してターゲットを見つけてください。"); 15 puts("ターゲットと探索位置の差が探索範囲以下であればヒットです。探索範囲より大きければ、はずれです。"); 16 puts("探索位置とターゲットが一致すれば正解です。"); 17 puts("----------------------------------------------"); 18 puts("ゲームを開始します。"); 19 puts("ターゲットが設定されました。"); 20 21 for(i = 1; flg == 0; i++) 22 { 23 printf("位置は? "); 24 scanf("%d", &iti); 25 printf("範囲は? "); 26 scanf("%d", &hani); 27 flg = hantei(ran, iti, hani, &result[0]); 28 printf("%s\n\n", result); 29 } 30 printf("おめでとう! %d回目で正解です!"); 31 32 return 0; 33} 34 35int hantei(int ran, int iti, int hani, char *result) 36{ 37 if(ran == iti) return 1; 38 else if(hani >= iti < ran ? ran - iti : iti - ran) 39 { 40 *result = "ヒットしました。"; 41 return 0; 42 } 43 else 44 { 45 *result = "はずれました。"; 46 return 0; 47 } 48}
回答5件
あなたの回答
tips
プレビュー