gpt4 book ai didi

c - 如何使用带有数组和字符串的代码?

转载 作者:行者123 更新时间:2023-11-30 16:18:44 25 4
gpt4 key购买 nike

以下是我收到的指示:

  1. 如果命令字是find,则读取一个附加整数并在数据集中搜索该整数。
  2. 如果命令字是print,则打印数组
  3. 任何其他命令字都是错误的。
  4. 命令字长度不得超过 20 个字符。

  5. 读取n+1个值后,将从键盘中再读取一个整数(k)。

  6. 在数组中搜索值 k。如果找到,则打印找到 k 的位置。 (1 = 数据值,n = 最后一个数据值)。
  7. 如果未找到k,则打印not found。这不是一个错误。
  8. 如果数据中有多个值k,则仅打印第一个值的位置。
#include <stdio.h>

int main (void) {
int n;
scanf ("%d", &n);
if (n < 1) {
printf ("Error: one or more values must be provided.\n");
return 1;
}

int x [n];
int a;
a = 0;
while (a < n) {
scanf ("%d", x [a]);
a = a + 1;
}

int k;
scanf ("%d", &k);
int i;
i = 0;
while (i <= n-1) {
if (x[i] == k) {
break;
}
i = i + 1;
}
if (i < n) {
printf ("%d\n", k+1);
} else {
printf ("not found\n");
}

printf ("Error: invalid command\n");
return 0;
}

建议策略:

  1. 读取数组数据后,读取字符串。
  2. 如果字符串是find,则读取整数k并执行搜索。
  3. 如果字符串是print,则不读取k,只打印数组中的数据。
  4. 如果字符串不是 findprint,则处理错误。

最佳答案

Shai'Tavia,我希望我的回答能够帮助您了解如何使代码正常工作。您已经完成了第一部分,但您需要比较用户给出的命令字符串,然后决定下一步要做什么。

#include <stdio.h>
#include <string.h>

#define ARRAYLENGTH 8

void printArray(int *array, int length)
{
for (int i = 0; i < length; i++)
printf("%d ", array[i]);
printf("\n");
}

void search(int *array, int key)
{
int flag = 0;

for (int i = 0; i < ARRAYLENGTH; i++)
{
if (array[i] == key && flag == 0)
{
printf("found %d at index: %d\n", key, i);
flag = 1;
}
}

if (flag == 0)
printf("not found\n");
}

int main(void)
{
char command[20];
int indx = 0;
int array[] = {1, 4, 6, 8, 43, 61, 34, 2};
int n, flag = 0;

printf("How many times will we run?");
scanf("%d", &n);

if (n < 1)
{
printf("Error: one or more values must be provided.\n");
return 1;
}

do
{
printf("Enter the command word:");
scanf("%s", command);

if (strcmp(command, "find") == 0)
{
scanf("%d", &n);
search(array, n);
}

else if (strcmp(command, "print") == 0)
printArray(array, ARRAYLENGTH);

else
printf("Command not found\n");

} while (--n > 0);

printf("What is your final interger?");
scanf("%d", &n);

search(array, n);

return 0;
}

关于c - 如何使用带有数组和字符串的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55819780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com