c语言问题

2025-12-14 16:03:26
推荐回答(4个)
回答1:

这题的出题人给的答案就不能输入小数,因为它用的是scanf("%d")的形式,这种形式只能接收整数。另外它的数组定义的就是int类型,不能存储小数。
如果要能处理小数,int g_numbers[128]、int g_max、int g_min都要改成float类型。scanf里的%d也要改成%f以识别浮点数。
不过这题没有必要,从题目中可以看出,你们现在学习的还是很基础的东西,能处理整数就行了,不需要考虑处理小数。
至于 stdlib.h,这个程序里应该没有用到。但stdio.h和stdlib.h是几乎每个程序都要包含的,所以编程人在写程序时,顺手就先把这两个包含进去,也是个习惯了。反正不会影响程序的大小,如果用不到,编译程序也不会把相关库链接进去。

回答2:

#include #include void main() { int i=0; int j=0; char countryname[5][20]; //5X20的数组,用于保存国家名称 char temp[20]; //交换时使用 printf("Please input five country's name\n"); //输入5个国家的名字 for(i=0;i<5;i++) { printf("please input name for country %d\n",i); scanf("%s",countryname[i]); } //冒泡排序按英语词典规律排序 for(i=1;i<5;i++) { for(j=0;j0) { strcpy(temp,countryname[j]); strcpy(countryname[j],countryname[j+1]); strcpy(countryname[j+1],temp); } } } printf("The country's after sort is:\n"); //排序后的国家名称 for(i=0;i<5;i++) { printf("%s\n",countryname[i]); } } //这段代码经过调试没有问题,明天有面试,写个练练手,祝福我吧!!

回答3:

定义的是int整形 啊,得是整数才可以啊

回答4:

#include
#include

float g_numbers[128];
int g_count = 0;
float g_max = 0;
float g_min = 0;
void get_input()
{
while(1)
{
printf("输入一个数: ");
float num = 0;
int ret = scanf("%f", &num);
if(ret != 1)
{
printf("输入错误,结束输入!\n");
break;
}
else
{
g_numbers[g_count] = num;
g_count ++;
}
}
}
void max_and_min()
{
int i;

g_max = g_min = g_numbers[0];
for(i=1; i {
if(g_max < g_numbers[i])
g_max = g_numbers[i];
if(g_min > g_numbers[i])
g_min = g_numbers[i];
}
}
int main()
{
int i;

get_input();
printf("---------- 列出数字 ------------\n");
for(i=0; i {
printf("%f ", g_numbers[i]);
}
max_and_min();
printf("其中, 最大值%f, 最小值%f \n", g_max, g_min);
return 0;
}