char state[50],i,j,c; printf("输入5个国家名实现按字母先后顺序排序\n"); fflush(stdout); scanf("%s",state); for(i=0;state[i]!='\0';i++){ for(j=0;j<i;j++){ if(state[j]>state[j+1]){ c=state[j+1]; state[j+1]=state[j]; state[j]=c; } } } printf("%s",state); return 0; }哪里有问题
时间: 2024-04-12 15:27:36 浏览: 28
在这段代码中,有一个问题是在排序算法中的内层循环条件不正确。应该是`j<i`而不是`j<i`。更正后的代码如下:
```c
char state[50], i, j, c;
printf("输入5个国家名实现按字母先后顺序排序\n");
fflush(stdout);
scanf("%s", state);
for (i = 0; state[i] != '\0'; i++) {
for (j = 0; j < i; j++) {
if (state[j] > state[j + 1]) {
c = state[j + 1];
state[j + 1] = state[j];
state[j] = c;
}
}
}
printf("%s", state);
return 0;
```
这样就可以按照字母的先后顺序对输入的国家名进行排序了。
相关问题
c语言实现输入一个英文字母字符串,只能包含大小写英文字母,不包含其它字符。
可以使用C语言中的字符数组来实现输入一个英文字母字符串,只包含大小写英文字母的限制。具体实现步骤如下:
1. 定义一个字符数组,用于保存输入的英文字母字符串。
2. 使用C语言中的scanf函数获取用户输入的字符串,格式化字符串为"%[A-Za-z]",表示只接受大小写字母的输入。
3. 在获取输入之前,建议清空缓冲区,以免之前的输入对后续操作产生影响。
完整代码示例如下:
```
#include <stdio.h>
int main() {
char str[100];
// 清空缓冲区
fflush(stdin);
// 获取用户输入
scanf("%[A-Za-z]", str);
// 输出输入结果
printf("输入的字符串为:%s\n", str);
return 0;
}
```
这样就可以实现输入一个英文字母字符串,只包含大小写英文字母的限制。
C语言实现输入十个数求和,并且能实现多个异常处理的代码
下面是实现输入十个数求和并实现多个异常处理的 C 代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, sum = 0, num, count = 0;
for (i = 1; i <= 10; i++) {
printf("请输入第%d个数:", i);
if (scanf("%d", &num) != 1) { // 判断输入是否为整数
printf("输入错误,请输入整数!\n");
if (++count == 3) { // 判断错误次数是否超过3次
printf("错误次数超过3次,程序退出!\n");
exit(1);
}
i--; // 重新输入当前数
fflush(stdin); // 清除缓存区
continue; // 跳过此次循环
}
sum += num;
}
printf("十个数的和为:%d\n", sum);
return 0;
}