我正在為我的 C 編程課程的指標練習而苦苦掙扎。我被要求使用原型float mean(char *list);和strtok函式從逗號分隔的整數串列中計算算術平均值。但是,我無法讓我的功能正常作業。這是我提出的解決方案;
#include <string.h>
#include <stdlib.h>
#include <inttypes.h>
#include <stdio.h>
float mean(char *list);
float mean(char *list) {
const char sep[] = ",";
char *token;
token = strtok(list, sep);
int8_t value = atoi(token);
int8_t total = value;
int8_t count = 1;
while(token != NULL) {
token = strtok(NULL, sep);
value = atoi(token);
total = total value;
count = count 1;
}
double mean;
mean = total/count;
return mean;
}
uj5u.com熱心網友回復:
在您的 while 回圈中,您將在回圈開始時更新令牌,因此在下一行中您應該檢查令牌是否已變為 NULL - 但您沒有檢查。這是代碼:
float mean(char *list) {
const char sep[] = ",";
char *token;
token = strtok(list, sep);
int8_t value = atoi(token);
int8_t total = value;
int8_t count = 1;
while(token != NULL) {
token = strtok(NULL, sep);
if (token == NULL) break;
value = atoi(token);
total = total value;
count = count 1;
}
double mean;
mean = total/count;
return mean;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/512710.html
標籤:C指针斯托克
上一篇:有沒有辦法讓我的羅馬數字不分開但會產生換行符?(解決了)
下一篇:C中的二叉搜索樹遍歷
