#include <stdio.h> void main() { char string [81] ; int i, num=0 ; char c; gets(string); for (i=0; (c=string [i] )!='\0'; i++) if(c!='') num++; printf("%d",num); }程序哪里错了
时间: 2024-03-26 18:38:05 浏览: 29
这个程序有两个问题:
1. 在判断字符是否为空格时,应该使用单引号('')而不是双引号(""),因为单引号表示字符,双引号表示字符串。
2. `void main()` 应该改为 `int main()`,因为 main 函数应该返回一个整数类型的值。
修改后的程序如下:
```c
#include <stdio.h>
int main() {
char string[81];
int i, num = 0;
char c;
gets(string);
for (i = 0; (c = string[i]) != '\0'; i++) {
if (c != ' ') {
num++;
}
}
printf("%d", num);
return 0;
}
```
注意:`gets` 函数已经被标记为不安全,建议使用 `fgets` 函数代替。
相关问题
#include <stdio.h> #include <string.h> void fun(char *s,int num) { } void main() { char s[10]; gets(s); fun(s,7); printf("%s", s); }
这是一道需要填空的题目,题目思路是将字符串 `s` 中的前 `num` 个字符反转。可以使用两个指针分别指向字符串的首位和末位,依次交换两个指针所指向的字符,直到两个指针相遇为止。具体实现可以这样写:
```c
#include <stdio.h>
#include <string.h>
void fun(char *s, int num) {
int i = 0, j = num - 1;
while (i < j) {
char temp = s[i];
s[i] = s[j];
s[j] = temp;
i++;
j--;
}
}
void main() {
char s[10];
gets(s);
fun(s, 7);
printf("%s", s);
}
```
其中,`i` 和 `j` 分别表示指向字符串的首位和末位的指针,`temp` 是一个临时变量,用于交换两个指针所指向的字符。在循环中,每次将指针向中间移动一位,并交换两个指针所指向的字符,直到两个指针相遇为止。最终输出交换后的字符串即可。
请编写函数fun,对长度为7个字符的字符串,除首,尾字符外,其余5个字符按ASCII码降序排列。 #include <stdio.h> #include <string.h> void fun(char *s,int num) { } void main() { char s[10]; gets(s); fun(s,7); printf("%s", s); }
这道题目需要编写一个函数,对长度为7个字符的字符串,除首、尾字符外,其余5个字符按ASCII码降序排列。由于字符串中只有7个字符,因此可以使用选择排序的方法,每次选择最大的字符放到指定位置,最终得到排好序的字符串。
具体实现如下:
```c
#include <stdio.h>
#include <string.h>
void fun(char *s, int num) {
int i, j, max_index;
char temp;
for (i = 1; i < num - 1; i++) { // 从第二个字符开始,到倒数第二个字符结束
max_index = i;
for (j = i + 1; j < num - 1; j++) { // 从下一个字符开始,到倒数第二个字符结束
if (s[j] > s[max_index]) { // 找到比当前字符大的最大字符
max_index = j;
}
}
if (max_index != i) { // 将最大字符与当前字符交换
temp = s[i];
s[i] = s[max_index];
s[max_index] = temp;
}
}
}
void main() {
char s[10];
gets(s);
fun(s, 7);
printf("%s", s);
}
```
在函数 `fun` 的实现中,变量 `i` 从第二个字符开始,到倒数第二个字符结束;变量 `j` 从下一个字符开始,到倒数第二个字符结束。每次在区间 `[i+1, num-2]` 中选择最大的字符,并将其与第 `i` 个字符交换。最终得到的字符串就是除首、尾字符外,其余5个字符按ASCII码降序排列的结果。
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)