私たちの宿題では、ユーザーからフォームを使用して10の入力を取得するHTMLを作成する必要がありました。次に、これらの10個の入力から、10個の入力の平均を取得して結果を表示するプログラムを作成しなければなりませんでした。これは私がこれまで何をやったかである: 私たちは、最初の配列でそれらの10個の入力を保存しなければならなかったCGI-ユーザーがHTMLで入力した10個の入力の平均を取得する
CGIコード:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char *data;
int i;
int nums[10];
double sum = 0.0;
double size=0.0;
printf("Content-type:text/html");
printf("<html><body>");
data=getenv("QUERY_STRING");
if(data)
{
for(i=0; i<10; i++)
{
sscanf(data,"nums[i]=%d", &nums[i]);
sum += nums[i];
}
size=sum/10;
printf("The average is %d\n",size);
}
return 0;
}
そしてHTML:
<html>
<body>
<form action='/cgi-bin/trust.cgi'>
<a: input type=text value='' name=a />
<b: input type=text value='' name=b />
<c: input type=text value='' name=c />
<d: input type=text value='' name=d />
<e: input type=text value='' name=e />
<f: input type=text value='' name=f />
<g: input type=text value='' name=g />
<h: input type=text value='' name=h />
<i: input type=text value='' name=i />
<j: input type=text value='' name=j />
<input type=submit value='Compute'>
</form>
</body>
</html>
QUESTION : "エラー500:サーバーエラー!スクリプトヘッダーの早すぎる終了:trust.cgi"が表示され続けます。このタイプのコードを初めてコーディングしたものです。何か助けていただければ幸いです。
編集:そのエラー500の世話をしました。しかし、今私の問題は、それが私に必要な平均に対して間違った答えを与えているということですか?どんな助け?ありがとう!
'data'文字列には実際に' nums [i] = 'が含まれていますか、' nums [0] = 'のようなものですか?今あなたの 'sscanf()'は前者を探しています。また、文字列内の値を検索する場所を増やす必要があります。現在、あなたは毎回最初から始めています。 – chrisaycock
chrisaycockはその部分のためのi ++ではありませんか?私は混乱してすみませます。 –