質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

Q&A

2回答

1664閲覧

関数を使ってxがyより大きい時、yの値とxの値を入れ替えるコードを作りたいのですがうまく動作しません。

tombolo1729

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

0グッド

0クリップ

投稿2020/06/27 08:01

なぜかコンパイルするとxとyの値が入力値そのままを返してしまいます。

#include<stdio.h>

void swap(inta,intb){
int c;
c=*a; *a=*b; *b=c;
}
void order(int a,int b){
if(a>b){
swap(&a,&b);
}
}

int main(void){
int x;
int y;
printf("Input x:");
scanf("%d",&x);
printf("Input y:");
scanf("%d",&y);
void order(int x,int y);
printf("x:address=%p,value=%d.\n",&x,x);
printf("y:address=%p,value=%d.\n",&y,y);

return 0;

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BluOxy

2020/06/27 11:14 編集

C# ではなく C でしょうから、タグを変更しましょう。 また、コードのインデントが分かりづらく読む気力がなくなりますから、コードを添付する際はマークダウン(```)で囲い、インデントが有効になるよう対応をお願いします。 https://teratail.com/help#about-markdown
guest

回答2

0

二か所ですね。

void order(int a,int b){
if(a>b){
swap(&a,&b);
}
}

void order(int *a, int *b) {
if(*a>*b){
swap(a,b);
}
}

void order(int x,int y);

order(&x, &y);

追記

C# の場合

using System;

namespace ConsoleApp1
{
class Program
{
static void Main()
{
static int Prompt(string message)
{
Console.Write(message);
return int.Parse(Console.ReadLine());
}

static void Dump(string name, int n) { unsafe { Console.WriteLine($"{name}:address={(int)&n:X},value={n}."); } } int x = Prompt("Input x:"); int y = Prompt("Input y:"); if (x > y) { (x, y) = (y, x); } Dump(nameof(x), x); Dump(nameof(y), y); } }

}

投稿2020/06/27 08:23

編集2020/06/27 08:43
Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

void order(int x,int y);

これ、呼び出してません。
プロトタイプ宣言してるだけです

#呼び出してても結果は変わらないけど

投稿2020/06/27 08:04

編集2020/06/27 08:05
y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/06/27 08:06

もひとつ、 タグはC#ですが、これC言語ですよね? タグ修正しといてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問