エラーの意味が全く分からん
引用元:C言語に自信ニキ
ワイって複数人おるんか
前質問したら無視されたンゴ
8: 名無しさん@おーぷん:20/09/16(水)18:07:32 ID:35f主 ×
それやったらワイもできるンゴニキやで!
知らんけど環境とかそっち系の問題?
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/9.2.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-9.2.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=ming
w32 --disable-win32-registry --with-arch=i586 --with-tune=generic --enable-static --enable-shared --
enable-threads --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-dwarf2 --disable-sjlj-except
ions --enable-version-specific-runtime-libs --enable-libgomp --disable-libvtv --with-libiconv-prefix
=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug --disable-build-format-warnings --pref
ix=/mingw --with-gmp=/mingw --with-mpfr=/mingw --with-mpc=/mingw --with-isl=/mingw --enable-nls --wi
th-pkgversion='MinGW.org GCC Build-2'
Thread model: win32
gcc version 9.2.0 (MinGW.org GCC Build-2)
14: 名無しさん@おーぷん:20/09/16(水)18:10:58 ID:Slj ×
すまん合ってたわ
21: 名無しさん@おーぷん:20/09/16(水)18:12:45 ID:35f主 ×
#include
void getEdisonBirthday(long * pYear, unsigned char * pMonth, unsigned short * pDay)
{
*pYear = 1847;
*pMonth = 2;
*pDay = 11;
return;
}
int main(void)
{
// 日付格納用の変数の定義
long year;
unsigned char month;
unsigned short day;
// getEdisonBirthday関数の呼び出し
getEdisonBirthday(&year, &month, &day);
// 出力期待値に合わせて表示を行う
printf("誕生日:%d年%d月%d日", year, month, day);
return 0;
}
https://wandbox.org/nojs/gcc-9.3.0-c/permlink/unwIIvAWZKvWcM52
compiler output:
prog.c: In function 'main':
prog.c:22:22: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long int' [-Wformat=]
22 | printf("誕生日:%d年%d月%d日", year, month, day);
| ~^ ~~~~
| | |
| int long int
| %ld
program output:
誕生日:1847年2月11日
やっぱ型で警告は出るんやな
というと?
初心者ですまん
23: 名無しさん@おーぷん:20/09/16(水)18:14:57 ID:1ow ×
どこがおかしいんや…
文字コードがShift-JISになってるとか?まさかな
https://www.dsri.jp/database_service/jicfsifdb/mojicheck.html
ここでチェックしたら問題なさそうや
同じだった
→
*pMonth = "2";
これではあかんか?
charならシングルクォーテーションじゃね?
29: 名無しさん@おーぷん:20/09/16(水)18:18:19 ID:FXF ×
ごめん間違えた
'2'
やね
何故?
monthだけや
あとは前のまま
35: 名無しさん@おーぷん:20/09/16(水)18:20:45 ID:ndj ×
わからん
%dになってる
%dで%lfとかに変えんとあかんわ
全部覚えてないからすぐには書けないけど
43: 名無しさん@おーぷん:20/09/16(水)18:23:46 ID:j8W ×
1文字のcharのイメージあるけど
int sumArray(long * pArray, int arrayNum, long * pSum)
{
long sum = 0;
int i;
// NULLチェック
if (pArray == NULL || pSum == NULL)
{
return -1;
}
// ポインタから配列にアクセス
for (i = 0 ; i < arrayNum ; i++)
{
sum += pArray[i];
}
// 加算結果をポインタ先へ書き込み
*pSum = sum;
return 0;
}
int main(void)
{
long num[] = {29, 9642, -3849, 628, 20};
long sum = 0;
int ret;
// ケース①
ret = sumArray(num, sizeof(num)/sizeof(num[0]), &sum);
// ケース②
// ret = sumArray(NULL, sizeof(num)/sizeof(num[0]), &sum);
// ケース③
// ret = sumArray(num, sizeof(num)/sizeof(num[0]), NULL);
if (ret == 0)
{
printf("sum:%d", sum);
}
else
{
printf("ERROR");
}
return 0;
}
これも試してみたけど
CodeRunnerはできるけどエディタではできない
printf("誕生日:%d年%d月%d日", (int)year, (int)month, (int)day);
なんでベタ書き
型も教える例文なんかな