C语言 字符串 和字符
#include <stdio.h>#define M 100
int max_Num_name(int *num, int m)
{
int i;
int n = 0;
int max = num;
for(i = 0; i < m; i++)
{
if(max <= num)
{
max = num;
n = i;
}
}
return n;
}
int max_Prce_name(float *price, int m)
{
int i, n = 0;
float max = price;
for(i = 0; i < m; i++)
{
if(max <= price)
{
max = price;
n = i;
}
}
return n;
}
//float sum_Price(*price, *num)
//{
// float sum = 0;
//
//
//
// return sum;
//}
int main (void)
{
char name;
int num;
float price;
int m;
printf("请输入商品的数量(m不大于100):");
scanf("%d", &m);
int i, j, k;
for(i = 0; i < m; i++)
{
printf("请输入商品的名称:");
scanf("%s", &name);
printf("请输入商品的数量:");
scanf("%d", &num);
printf("请输入商品的单价");
scanf("%f", &price);
}
int a = max_Num_name(num, m);
printf("数量最多的商品名称是:%s\n", name);
int b = max_Prce_name(price, m);
printf("单价最高的商品名称是:%c\n", name);
// float sum = sum_Price(price, num);
// printf("商品总价是:%f", sum);
return 0;
}
@FishC,哪里出问题? 在你的代码中,你定义了一个函数`max_Num_name`来找到一个数组中的最大值。然而,我注意到你的代码中有一些错误。
首先,你定义了一个整型数组`num`,但是你在比较最大值时却使用了`num`,这是不正确的。应该使用`num`来访问数组中的每个元素。
其次,你没有给变量`max`赋初值,这可能会导致错误的结果。你可以将`max`初始化为`0`或者数组中的第一个元素`num`。
最后,你没有在`if`语句中写入条件判断的逻辑,导致代码不完整。
下面是修正后的代码:
#include <stdio.h>
#define M 100
int max_Num_name(int *num, int m)
{
int i;
int n = 0;
int max = num;
for(i = 0; i < m; i++)
{
if(num > max)// 比较当前元素和最大值
{
max = num;// 更新最大值
n = i; // 记录最大值的索引
}
}
return n;
}
int main()
{
int num = {5, 2, 7, 1, 9};
int maxIndex = max_Num_name(num, 5);
printf("The maximum number is at index %d\n", maxIndex);
return 0;
}
这段代码中,我们使用了一个`for`循环来遍历数组中的每个元素,并将当前元素与最大值进行比较。如果找到更大的元素,则更新`max`和`n`的值。最后,我们返回记录最大值索引的变量`n`。
在`main`函数中,我们创建了一个包含一些数字的数组`num`,并调用`max_Num_name`函数来查找最大值的索引。然后,我们使用`printf`函数打印出结果。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-5-11 10:46
在你的代码中,你定义了一个函数`max_Num_name`来找到一个数组中的最大值。然而,我注意到你的代码中有一些 ...
我的71行出现一个错误,帮我看下
liyifeng295641 发表于 2024-05-11 11:06
我的71行出现一个错误,帮我看下
抱歉,我之前的回答中有一个错误。在第71行,我们需要将`num`作为数组来访问,因此需要使用索引`i`来访问数组中的每个元素。下面是修改后的代码:
#include <stdio.h>
#define M 100
int max_Num_name(int *num, int m)
{
int i;
int n = 0;
int max = num; // 将max初始化为数组的第一个元素
for(i = 1; i < m; i++) // 从第二个元素开始比较
{
if(num > max)// 比较当前元素和最大值
{
max = num;// 更新最大值
n = i; // 记录最大值的索引
}
}
return n;
}
int main()
{
int num[] = {5, 2, 7, 1, 9}; // 创建包含一些数字的数组
int maxIndex = max_Num_name(num, 5);
printf("The maximum number is at index %d\n", maxIndex);
return 0;
}
这段代码中,我们将`max`初始化为数组的第一个元素`num`,并从第二个元素开始进行比较。在`if`语句中,我们使用`num`来访问数组中的每个元素。
在`main`函数中,我们创建一个包含一些数字的数组`num`,并调用`max_Num_name`函数来查找最大值的索引。然后,我们使用`printf`函数打印结果。
希望这次回答能够解决你的问题。如果还有其他疑问,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]