鱼C论坛

 找回密码
 立即注册
查看: 1161|回复: 3

C语言 字符串 和字符

[复制链接]
发表于 2024-5-11 10:46:16 | 显示全部楼层 |阅读模式

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

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

x
  1. #include <stdio.h>

  2. #define M 100

  3. int max_Num_name(int *num, int m)
  4. {
  5.         int i;
  6.         int n = 0;
  7.         int max = num[0];
  8.        
  9.         for(i = 0; i < m; i++)
  10.         {
  11.                 if(max <= num[i])
  12.                 {
  13.                         max = num[i];
  14.                         n = i;
  15.                 }
  16.         }
  17.        
  18.         return n;
  19. }

  20. int max_Prce_name(float *price, int m)
  21. {
  22.         int i, n = 0;
  23.         float max = price[0];
  24.        
  25.         for(i = 0; i < m; i++)
  26.                 {
  27.                         if(max <= price[i])
  28.                         {
  29.                                         max = price[i];
  30.                                         n = i;
  31.                         }
  32.                 }
  33.        
  34.         return n;
  35. }

  36. //float sum_Price(*price, *num)
  37. //{
  38. //        float sum = 0;
  39. //       
  40. //       
  41. //       
  42. //        return sum;
  43. //}

  44. int main (void)
  45. {
  46.         char name[M];
  47.         int num[M];
  48.         float price[M];
  49.        
  50.         int m;
  51.         printf("请输入商品的数量(m不大于100):");
  52.         scanf("%d", &m);
  53.        
  54.         int i, j, k;
  55.         for(i = 0; i < m; i++)
  56.         {
  57.                 printf("请输入商品的名称:");
  58.                 scanf("%s", &name[i]);
  59.                 printf("请输入商品的数量:");
  60.                 scanf("%d", &num[i]);
  61.                 printf("请输入商品的单价");
  62.                 scanf("%f", &price[i]);
  63.         }
  64.        
  65.         int a = max_Num_name(num, m);
  66.         printf("数量最多的商品名称是:%s\n", name[a]);
  67.        
  68.         int b = max_Prce_name(price, m);
  69.         printf("单价最高的商品名称是:%c\n", name[b]);
  70.        
  71.        
  72. //        float sum = sum_Price(price, num);
  73. //        printf("商品总价是:%f", sum);
  74.        
  75.        
  76.         return 0;
  77. }
复制代码


@FishC,哪里出问题?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-5-11 10:46:33 | 显示全部楼层
在你的代码中,你定义了一个函数`max_Num_name`来找到一个数组中的最大值。然而,我注意到你的代码中有一些错误。

首先,你定义了一个整型数组`num`,但是你在比较最大值时却使用了`num`,这是不正确的。应该使用`num[i]`来访问数组中的每个元素。

其次,你没有给变量`max`赋初值,这可能会导致错误的结果。你可以将`max`初始化为`0`或者数组中的第一个元素`num[0]`。

最后,你没有在`if`语句中写入条件判断的逻辑,导致代码不完整。

下面是修正后的代码:

  1. #include <stdio.h>

  2. #define M 100

  3. int max_Num_name(int *num, int m)
  4. {
  5.     int i;
  6.     int n = 0;
  7.     int max = num[0];
  8.    
  9.     for(i = 0; i < m; i++)
  10.     {
  11.         if(num[i] > max)  // 比较当前元素和最大值
  12.         {
  13.             max = num[i];  // 更新最大值
  14.             n = i;         // 记录最大值的索引
  15.         }
  16.     }
  17.    
  18.     return n;
  19. }

  20. int main()
  21. {
  22.     int num[M] = {5, 2, 7, 1, 9};
  23.     int maxIndex = max_Num_name(num, 5);
  24.    
  25.     printf("The maximum number is at index %d\n", maxIndex);
  26.    
  27.     return 0;
  28. }
复制代码


这段代码中,我们使用了一个`for`循环来遍历数组中的每个元素,并将当前元素与最大值进行比较。如果找到更大的元素,则更新`max`和`n`的值。最后,我们返回记录最大值索引的变量`n`。

在`main`函数中,我们创建了一个包含一些数字的数组`num`,并调用`max_Num_name`函数来查找最大值的索引。然后,我们使用`printf`函数打印出结果。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-11 11:06:30 | 显示全部楼层
FishC 发表于 2024-5-11 10:46
在你的代码中,你定义了一个函数`max_Num_name`来找到一个数组中的最大值。然而,我注意到你的代码中有一些 ...

我的71行出现一个错误,帮我看下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-11 11:06:48 | 显示全部楼层
liyifeng295641 发表于 2024-05-11 11:06
我的71行出现一个错误,帮我看下


抱歉,我之前的回答中有一个错误。在第71行,我们需要将`num`作为数组来访问,因此需要使用索引`i`来访问数组中的每个元素。下面是修改后的代码:

  1. #include <stdio.h>

  2. #define M 100

  3. int max_Num_name(int *num, int m)
  4. {
  5.     int i;
  6.     int n = 0;
  7.     int max = num[0]; // 将max初始化为数组的第一个元素
  8.    
  9.     for(i = 1; i < m; i++) // 从第二个元素开始比较
  10.     {
  11.         if(num[i] > max)  // 比较当前元素和最大值
  12.         {
  13.             max = num[i];  // 更新最大值
  14.             n = i;         // 记录最大值的索引
  15.         }
  16.     }
  17.    
  18.     return n;
  19. }

  20. int main()
  21. {
  22.     int num[] = {5, 2, 7, 1, 9}; // 创建包含一些数字的数组
  23.     int maxIndex = max_Num_name(num, 5);
  24.    
  25.     printf("The maximum number is at index %d\n", maxIndex);
  26.    
  27.     return 0;
  28. }
复制代码


这段代码中,我们将`max`初始化为数组的第一个元素`num[0]`,并从第二个元素开始进行比较。在`if`语句中,我们使用`num[i]`来访问数组中的每个元素。

在`main`函数中,我们创建一个包含一些数字的数组`num`,并调用`max_Num_name`函数来查找最大值的索引。然后,我们使用`printf`函数打印结果。

希望这次回答能够解决你的问题。如果还有其他疑问,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-18 22:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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