下のプログラムを行うと
入力してください:4
1個目:1
2個目:1
3個目:1
4個目:2
2が1個
1が3個
1が2個
1が1個 となるのを
入力してください:4
1個目:1
2個目:1
3個目:1
4個目:2
2が1個
1が3個 としたいのですが
どうもわかりません教えてくれませんか
お願いします。
#include <stdio.h>
#define number 1000
int n()
{int x;
printf("入力する数を決めてください:");
scanf("%d", &x);
return (x);
}
int a(int x)
{ int i=0,j=0,men,p,y;
int v[number];int c[number]={0};
for(;i<x;i++)
{
printf("%d個目:",i+1);
scanf("%d", &v);
men=i;
i=men;
j=men;
for(;j>=0;j--)
{
if(v==v[j]){c+=1;}
}
}
for(i=x-1;0<=i;i--){
if(p=x)printf("%dが%d個\n",v,c);
}}
int main(void)
{
int d;
d=n();
a(d);
return 0;
}
配列内に同じ値がいくつあるのかを表示するプログラム
Re: 配列内に同じ値がいくつあるのかを表示するプログラム
ソースはコードタグで囲ってください。
また、変数名が短すぎて意味が分からないのでちゃんと名前をつけてください。
とりあえず、
if(p=x)printf("%dが%d個\n",v,c);
の部分が問題です。比較演算子が間違っているし、pの数値が不定です。
[追記]
int c[number] も初期化していないのにインクリメントされています。
また、変数名が短すぎて意味が分からないのでちゃんと名前をつけてください。
とりあえず、
if(p=x)printf("%dが%d個\n",v,c);
の部分が問題です。比較演算子が間違っているし、pの数値が不定です。
[追記]
int c[number] も初期化していないのにインクリメントされています。
#include <stdio.h>
#define number 1000
int n()
{
int x;
printf("入力する数を決めてください:");
scanf("%d", &x);
return (x);
}
int a(int x)
{
int i=0,j=0,men,p,y;
int v[number];int c[number]={0};
for(;i<x;i++)
{
printf("%d個目:",i+1);
scanf("%d", &v[i]);
men=i;
i=men;
j=men;
for(;j>=0;j--)
{
if(v[i]==v[j]){c[i]+=1;}
}
}
for(i=x-1;0<=i;i--){
if(p=x)printf("%dが%d個\n",v[i],c[i]);
}
}
int main(void)
{
int d;
d=n();
a(d);
return 0;
}Re: 配列内に同じ値がいくつあるのかを表示するプログラム
警告レベル4でビルドしたときのログを以下にしめします。
マルチポストです。
http://detail.chiebukuro.yahoo.co.jp/qa ... 1065276200
(13): warning C4101: 'y' : ローカル変数は 1 度も使われていません。
(30): warning C4706: 条件式の比較値は、代入の結果になっています。
(31): warning C4716: 'a' : 値を返さなければいけません
http://detail.chiebukuro.yahoo.co.jp/qa ... 1065276200
最後に編集したユーザー naohiro19 on 2011年6月26日(日) 14:31 [ 編集 4 回目 ]
-
nominio
Re: 配列内に同じ値がいくつあるのかを表示するプログラム
#include <stdio.h>
#define number 1000
int n()
{
int x;
printf("入力する数を決めてください:");
scanf("%d", &x);
return (x);
}
int a(int x)
{
int i=0,j=0,men,p,y;
int v[number];int c[number]={0};
for(;i<x;i++)
{
printf("%d個目:",i+1);
scanf("%d", &v[i]);
men=i;
i=men;
j=men;
for(;j>=0;j--)
{
if(v[i]==v[j]){c[i]+=1;}
}
}
for(i=x-1;0<=i;i--){
printf("%dが%d個\n",v[i],c[i]);
}
}
int main(void)
{
int d;
d=n();
a(d);
return 0;
}