C语言Write a program to delete a number in the sequence. Sequence input, sequence output and sequence deletion are realized by three sub functions respectively. (The sequence and the value to be deleted are all entered by the user from the keyboard. If there is any, it will be deleted - the so-called deletion means that the subsequent elements are overwritten forward. If there is no, it will prompt "the number does not exist.")
时间: 2024-03-26 14:34:07 浏览: 79
下面是一个使用三个子函数实现从序列中删除数字的C语言程序:
```c
#include <stdio.h>
void inputSequence(int seq[], int n); // 输入序列
void outputSequence(int seq[], int n); // 输出序列
int deleteNumber(int seq[], int n, int num); // 删除数字
int main()
{
int n, num;
printf("Enter the length of the sequence: ");
scanf("%d", &n);
int seq[n];
printf("Enter the sequence:\n");
inputSequence(seq, n);
printf("Enter the number to delete: ");
scanf("%d", &num);
int newLen = deleteNumber(seq, n, num);
if (newLen == n)
printf("The number does not exist.\n");
else {
printf("The new sequence:\n");
outputSequence(seq, newLen);
}
return 0;
}
// 输入序列
void inputSequence(int seq[], int n)
{
for (int i = 0; i < n; i++)
scanf("%d", &seq[i]);
}
// 输出序列
void outputSequence(int seq[], int n)
{
for (int i = 0; i < n; i++)
printf("%d ", seq[i]);
printf("\n");
}
// 删除数字
int deleteNumber(int seq[], int n, int num)
{
int i;
for (i = 0; i < n; i++) {
if (seq[i] == num)
break;
}
if (i == n)
return n; // 没找到要删除的数字,返回原长度
// 要删除的数字后面的元素向前移动一个位置
for (int j = i; j < n - 1; j++) {
seq[j] = seq[j + 1];
}
return n - 1; // 返回新长度
}
```
程序首先通过 `inputSequence()` 函数从键盘输入序列,然后通过 `deleteNumber()` 函数删除指定的数字。如果序列中没有要删除的数字,该函数返回原长度,否则将后面的元素向前移动一个位置,返回新长度。最后,程序通过 `outputSequence()` 函数输出新序列。如果返回的新长度等于原长度,就说明要删除的数字不存在。
阅读全文