コマンドライン引数もそうなんですが、ポインタの値の受け渡しがよく分かっていないのだと思います。
プログラムは引数として入力した値から、最大値を出力するプログラムです。
コマンドライン引数はchar型になってしまうので、intにするためにatoi()を使っています。
saidai()の&data[i]にするとエラーは起きないのですが、アドレスをint型のmaxに渡すことになるのでやっぱりうまく動きません。
maxをポインタ型にすることもやってみましたが、うまくいきませんでした。
できる限り詳しく原因と解決方法をおしえてくださいm(_ _)m
#include<stdio.h>
#include<stdlib.h>
void saidai(int max,char* data,int n){
max=0;
int i;
for(i=1;i<n;i++){
if( atoi( &data[i])>max )max=atoi(&data[i]);
}
}
int main(int argc,char* argv[]){ int max=0; int i; for(i=1;i<argc;i++){ printf("入力値%d=%s\n",i,argv[i]); } saidai(max,*argv,argc); printf("最大値=%d\n",max); }
回答2件
あなたの回答
tips
プレビュー