鱼C论坛

 找回密码
 立即注册
查看: 2616|回复: 17

c语言scanf输入字符串二维数组_已解决

[复制链接]
发表于 2022-4-5 15:09:06 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 涛4091 于 2023-2-23 11:03 编辑

如何编写出一个二维字符串型数组,例如图片中定义一个char a[4][3]。a[0][0]等于name1。a[0][1]等于分数
屏幕截图 2022-04-05 150516.png

评分

参与人数 1荣誉 +3 收起 理由
sfqxx + 3 我去,30鱼币,没领到

查看全部评分

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

使用道具 举报

发表于 2022-4-5 15:18:19 From FishC Mobile | 显示全部楼层

回帖奖励 +30 鱼币

那你的二维数组是什么类型?字符串?整数?name1又是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-5 15:27:42 | 显示全部楼层

回帖奖励 +30 鱼币

char *name = {"张三","李车","老王"}
char a[4][3]
指针数组 用来保存姓名,
2维数组用来保存成绩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-5 15:40:53 | 显示全部楼层
傻眼貓咪 发表于 2022-4-5 15:18
那你的二维数组是什么类型?字符串?整数?name1又是什么?

char类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-5 15:58:46 From FishC Mobile | 显示全部楼层
  1. #include <stdio.h>

  2. typedef struct{
  3.         char name[20];
  4.         int score_A, score_B, score_C;
  5. }Person;

  6. int main(){
  7.         Person arr[4] = {
  8.                 {"小甲鱼", 85, 33, 45},
  9.                 {"小白", 72, 55, 72},
  10.                 {"小黑", 33, 31, 66},
  11.                 {"小花", 20, 78, 89}
  12.         };
  13.        
  14.         printf("%s 的 score B 分数是 %d", arr[1].name, arr[1].score_B);
  15.        
  16.         return 0;
  17. }
复制代码
  1. 小白 的 score B 分数是 55
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-5 16:00:58 | 显示全部楼层

回帖奖励 +30 鱼币

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

使用道具 举报

 楼主| 发表于 2022-4-5 16:08:53 | 显示全部楼层

哥,怎么用scanf 输入数据不是定义在里面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-5 16:13:18 | 显示全部楼层
  1.         int n;
  2.         char name[0];
  3.         scanf("%d",&n);
  4.         char content[n][10][10];
  5.         for(int i=0;i<n;i++){
  6.                 scanf("%s %s %s",&content[i][0],&content[i][1],&content[i][2]);
  7.                 printf("content[0]=%s,content[1]=%s,content[2]=%s\n",content[i][0],content[i][1],content[i][2]);
  8.         }

  9. 用一个三维数组可以吗?理论上可以,但是出错了

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

使用道具 举报

 楼主| 发表于 2022-4-5 16:15:58 | 显示全部楼层

  1. 当我加上name = content[i][0];  报错 30    [Error] invalid conversion from 'char*' to 'char' [-fpermissive]

  2.         int n;
  3.         char name;
  4.         scanf("%d",&n);
  5.         char content[n][10][10];
  6.         for(int i=0;i<n;i++){
  7.                 scanf("%s %s %s",&content[i][0],&content[i][1],&content[i][2]);
  8.                 printf("content[0]=%s,content[1]=%s,content[2]=%s\n",content[i][0],content[i][1],content[i][2]);
  9.                 name = content[i][0];
  10.         }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-5 16:20:53 From FishC Mobile | 显示全部楼层
涛4091 发表于 2022-4-5 16:15

scanf() 里的字符串占位符 %s 不用 &
因为 char* xxxxx 本身就是指针了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-5 16:21:49 From FishC Mobile | 显示全部楼层
涛4091 发表于 2022-4-5 16:13

是可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-5 16:34:56 | 显示全部楼层


我那样写不行啊,报错了老哥,如何解决[Error] invalid conversion from 'char*' to 'char' [-fpermissive]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-5 16:53:19 | 显示全部楼层

回帖奖励 +30 鱼币

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

使用道具 举报

发表于 2022-4-5 16:55:19 | 显示全部楼层

回帖奖励 +30 鱼币

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

使用道具 举报

 楼主| 发表于 2022-4-5 17:08:49 | 显示全部楼层
以解 删帖,莫回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-5 17:09:15 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-8 16:14:13 | 显示全部楼层
本帖最后由 yzzc 于 2022-4-8 16:19 编辑

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

使用道具 举报

发表于 2022-4-10 21:18:33 | 显示全部楼层
我揣测了题意,觉得使用结构是最好解决的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-4 21:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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