プログラミング、C言語です。
次のプログラムを実行するソースコードを教えて下さい。
自然数 n の値を入力し、続けて n 個の整数を入力すると、入力順で前後した2つの整数値の(n-1 個の)差の絶対値を一行ずつ出力するプログラムを作成しなさい。 ただし、n に 1 以下の値が入力されると、プログラムは n の入力を繰り返すものとする。
例
入力:
5 1 2 4 7 -10
出力:
1 2 3 17
入力:
0 1 2 3 10
出力:
7
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
出題に矛盾があります。
自然数(n)とは、1以上の整数ですから、「n に 0 以下の値が入力される」ということはありません。
例でいうと、入力により、
n=5です。n以外は示されていませんから 仮にa[n]とすると、
a[0]=1,a[1]=2,a[2]=4,a[3]=7,a[4]=-10 となります。
出力は、差の絶対値を一行(便宜上改行してませんが)ずつ出力ですから、
2-1=1,4-2=2,7-4=3,7+10=17 となります。
2個目の例でいうと、
n=0 ここで自然数でないのでエラーになりますが、無視することにします。
1以下なのでnの入力を繰返します。
n=1 これも1以下なのでnの入力を繰返します。
n=2です。
a[0]=3,a[1]=10 となります。
10-3=7 となります。
nは整数、と出題文を修正しないといけないのではないでしょうか。
No.2
- 回答日時:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char s[4097];
char* sep = " ";
int n, x, y;
puts("入力:");
scanf("%4096[^\n]%*[^\n]", s);
getchar();
n = strtol(strtok(s, sep), NULL, 10);
foo:
if (n > 1) {
x = strtol(strtok(NULL, sep), NULL, 10);
puts("出力:");
for (int i = 1; i < n; i++) {
y = strtol(strtok(NULL, sep), NULL, 10);
printf("%d ", abs(y - x));
x = y;
}
puts("");
} else {
n = strtol(strtok(NULL, sep), NULL, 10);
goto foo;
}
return EXIT_SUCCESS;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 malloc 関数を使って教えてください。 入出力例1 3 2022/07/21 09:36
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 正の整数nを入力させると、1からnまでの整数を出力し 9 2022/07/16 23:45
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# linux C言語について ./ファイル名 入力値 入力値が表示 という風に実行と入力を同時にしたい 3 2022/10/17 16:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正負を反転させて出力するプロ...
-
scanf関数について
-
プログラミング初心者です。 Py...
-
Excel VBAで、Application.Inpu...
-
入力値が1以下、かつ数字以外の...
-
小数か整数かを判定する方法
-
キー入力制限について
-
C言語でgetchar();が上手く使え...
-
WindowsでEOF
-
scanf が無視されます
-
数字以外が入力されたらエラー...
-
コマンドプロンプトからのEOFの...
-
2進数の1の数を数える問題
-
プログラムの実行時に'<'でリダ...
-
ワードで文字を入力する時の変...
-
VisualStudio2019のコードアナ...
-
C言語でタイミングを合わせるゲ...
-
プログラミングC言語について
-
getchar使用時の入力文字消去方法
-
Date関数で書いた日付がおかしい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
正負を反転させて出力するプロ...
-
数字以外が入力されたらエラー...
-
プログラミング初心者です。 Py...
-
java初心者です。入力されたの...
-
プログラミングの問題です 「金...
-
Eclipseコンソール表示を、リセ...
-
C言語 逆ピラミッドの作り方
-
"scanf"でエンターで改行させな...
-
scanf が無視されます
-
if文の条件にscanf関数を使うと…?
-
C言語について
-
C言語scanf_sで何故か2回入力に...
-
Excel VBAで、Application.Inpu...
-
小数か整数かを判定する方法
-
cout関数を使っているのですが...
-
double型が正常に認識されてい...
-
scanfが2回使えない・・・?;
-
C言語でgetchar();が上手く使え...
-
WindowsでEOF
おすすめ情報