/*外部変数を使ったプログラム*/
#include<stdio.h>
int max,min;
void maxmin(int[10]);
int main(void){
int data[10]={0,2,1,4,3,6,5,8,7,9};
maxmin(data);
return 0;
}
void maxmin(int data[10]){
int i,*p;
p=data;
max=*p;
min=*p;
for(i=1;i<10;i++){
if(**p+i>max){
*max=**p+i;
}
else if(*p+i<min){
*min=**p+i;
}
printf("最大値=%d,最小値=%d",max,min);
}
pointerを付け忘れていますとエラーメッセージが出ます。
pointerを付け忘れていますとエラーメッセージが出ます。
Re: pointerを付け忘れていますとエラーメッセージが出ます。
#if 0
こういうことがしたかったのでしょうか
#endif
/*外部変数を使ったプログラム*/
#include<stdio.h>
int max, min;
void maxmin(int data[10]);
int main(void)
{
int data[10] = { 0, 2, 1, 4, 3, 6, 5, 8, 7, 9 };
maxmin(data);
return 0;
}
void maxmin(int data[10])
{
int i, *p;
p = data;
max = min = *p;
for (i = 1; i < 10; i++) {
if (*(p + i) > max) {
max = *(p + i);
}
else if (*(p + i) < min) {
min = *(p + i);
}
}
printf("最大値=%d,最小値=%d\n", max, min);
}
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: pointerを付け忘れていますとエラーメッセージが出ます。
コンパイラが書かれていないですが、int型のmin、max、*pに対し間接演算子を使っているが、int型はポインタではないのでデリファレンスできないからであると予想できます。やきにくおいしい さんが書きました:このプログラムを実行したところ、pointerを付け忘れていますとエラーメッセージが表示されました。どうしてでしょうか。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)