鱼C论坛

 找回密码
 立即注册
查看: 3214|回复: 4

关于C语言数组的问题

[复制链接]
发表于 2018-1-24 20:57:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目:
已知一维数组中的10个元素各不相同,查找数组中是否存在值为key的数组元素。如果有,输出相应的下标,否则输出not found。已知数组无序排列。
input
先从键盘输入10个整数。然后再输入一个待查找的数据key。
output
若存在,则输出该数所在位置的下标值。若不存在则输出"not found"(输出不包含双引号)。
例如输入:
6 70 -9 80 83 54 3 88 10 2
80
输出:
3
       我写的程序在下面,但是出了问题,我想问问是什么问题。
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
        int c[100],i,n,k,j=0;
        gets(c);
        scanf("%d",&k);
        n=strlen(c);
        for(i=0;i<n;i++)
        {
                if(c[i]==k)
                {   j++;
                        printf("%d\n",i);
                }

        }
        for(i=0;i<n;i++)
        {
                printf("%d\n",c[i]);
        }
         if(j==0)
         {
                 printf("not found\n");
         }
return 0;
}

题目

题目
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-24 21:16:44 | 显示全部楼层
错误信息是什么 ?IDE应该有提示吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-24 21:17:22 | 显示全部楼层
数组的定义应该改成char
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-24 21:50:04 | 显示全部楼层
本帖最后由 ba21 于 2018-1-24 21:53 编辑

你这逻辑太乱了。

gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。

scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。
其调用格式为:      scanf("<格式化字符串>",<地址表>);
scanf()函数返回成功赋值的数据项数,出错时则返回EOF。
其控制串由三类字符构成:
1。格式化说明符;
2。空白符;
3。非空白符;


参考
  1. #include <stdio.h>

  2. #define NUM 10


  3. int main(vod)
  4. {
  5.         int input[NUM], i, key;


  6.                 printf("请输入10个整数以空格分开:");

  7.                 // 从键盘接收10个整数
  8.                 for(i=0; i<NUM; i++)
  9.                 {
  10.                         scanf("%d",&input[i]);
  11.                 }
  12.                
  13.                 // 清除scanf余留下来的数
  14.                 while(getchar() != '\n')
  15.                         continue;

  16.                 printf("输入一个待查找的数据:");
  17.                 scanf("%d", &key);

  18.                 // 查找key
  19.                 for(i=0; i<NUM; i++)
  20.                 {
  21.                         if (input[i] == key)
  22.                         {
  23.                                 printf("已找到,下标是:%d\n",i);
  24.                                 break;
  25.                         }
  26.                
  27.                 }
  28.                 if (i==NUM) //表示没有找到
  29.                         printf("not found\n");


  30.                 return 0;
  31. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-25 11:26:21 | 显示全部楼层
恩,已经解决了,谢谢大家,哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 02:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表