#include <stdio.h> void sort(char *p); int main(void) { char str[21] ; gets(str); sort(str); puts(str); return 0; } void sort(char *p) { int i,len=strlen(*p),ln=len-2,j; char *q; strncpy(q,*(p+1),len-2); for(i=0;i<len-3;i++) { for(j=0;j<ln-1;j++) { if(*(q+j)<*(q+j+1)) { int t=*(q+j); *(q+j)=*(q+j+1); *(q+j+1)=t; } ln--; } } strncpy(*(p+1),q,len-2); }
There are several issues in the code provided. Here is the corrected version: ```c #include <stdio.h> #include <string.h> void sort(char *p); int main(void) { char str[21]; fgets(str, 21, stdin); sort(str); printf("%s\n", str); return 0; } void sort(char *p) { int i, len = strlen(p), ln = len - 2, j; char q[20]; strncpy(q, p + 1, len - 2); for (i = 0; i < len - 3; i++) { for (j = 0; j < ln - 1; j++) { if (*(q + j) < *(q + j + 1)) { char t = *(q + j); *(q + j) = *(q + j + 1); *(q + j + 1) = t; } ln--; } } strncpy(p + 1, q, len - 2); } ``` Changes made: 1. Used `fgets` instead of `gets` to prevent buffer overflow. 2. Included `<string.h>` header for `strlen` function. 3. Fixed the usage of pointers and arrays within the `sort` function. 4. Changed `puts` to `printf` for outputting the sorted string. [2024-12-06 09:27:31 | AI写代码神器 | 664点数解答]
- [GPT] #include <stdio.h> void sort(char *p); int main(void) { char str[21] ; gets(str); sort(str); puts(str); return 0; } void sort(char *p) { int i,len=strlen(*p),ln=len-2,j; char *q; strncpy(q,*(p+1),len-2); for(i=0;i<len-3;i++) { for(j=0;j<ln-1;j++) { if(*(q+j)<*(q+j+1)) { int t=*(q+j); *(q+j)=*(q+j+1); *(q+j+1)=t; } ln--; } } strncpy(*(p+1),q,len-2); }(664点数解答 | 2024-12-06 09:27:31)219
- [阿里通义] 检查代码 #include <ctype.h> #include <string.h> void verse(char* str) { *str = tolower(*str); int lens = strlen(str); printf("字符串长度为:%d\n", lens); for (int i = 0; i < lens / 2; i++) { char temp = str[i]; str[i] = str[lens - 1 - i]; str[lens - 1 - i] = temp; } } int pali(char *str) { int lens=strlen(str); char *reverse[lens+1]; strcpy(reverse, str); verse(reverse); return strcmp(str, reverse)==0; } int main() { char str[101];(655点数解答 | 2024-11-08 21:54:45)217
- [字节豆包] #include<stdio.h> #include<string.h> #include<ctype.h> int · main() { ···· char · str[21]; ···· fgets(str, · sizeof(str), · stdin); ···· int · upper=0, · lower=0, · digit=0, · other=0; ···· ···· for(int · i=0; · i<strlen(str); · i++) ···· { ········ char · ch=str[i]; ········ if(ch · == · '\n') · continue; ········ ········ if(isupper(ch)) · upper++; ········ else · if(islower(ch)) · lower++; ········ else (541点数解答 | 2025-11-30 12:03:00)10
- [字节豆包] 6-22 删除字符串中指定的字符 分数 10 作者 王跃萍 单位 东北石油大学 编写函数fun,函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。 函数接口定义: int fun(char s[],char c); 其中 s 和 c 都是用户传入的参数。 函数从字符串 s中删除指定的字符c 。同一字母的大、小写按不同字符处理。 裁判测试程序样例: #include <stdio.h> int fun(char s[],char c); int main() { static char str[]="turbocandborlandc++"; char ch; scanf("%c",&ch); printf("原始字符串:%s\n", str); fun(str,ch); printf("str[]=%s\n",str); return 0; } /* 请在这里填写答案 */ 输入样例: c 输出样例: 原始字符串:turbocandborlandc++ str[]=turboandborland(211点数解答 | 2025-01-21 21:18:10)207
- [讯飞星火] ```c #include <stdio.h> #include <string.h> #include <ctype.h> void reverseWord(char *word) { int len = strlen(word); for (int i = 0; i < len / 2; i++) { char temp = word[i]; word[i] = word[len - i - 1]; word[len - i - 1] = temp; } } void processWord(char *word) { if (isdigit(word[0])) { reverseWord(word); } else if (islower(word[0])) { for (int i = 0; i < strlen(word); i++) { word[i] = toupper(word[i]); } } el(1192点数解答 | 2025-11-26 09:45:04)22
- [GPT] // // main.cpp // step1 // // created by ljpc on 2018/8/31. // copyright © 2018年 ljpc. all rights reserved. // #include <iostream> #include <stack> #include <cstring> #include <algorithm> using namespace std; int main(int argc, const char * argv[]) { // 请在这里补充代码,完成本关任务 /********* begin *********/ stack<char> s1; stack<char> s2; char s[200]; fgets(s,200,stdin); int len=strlen(s); if(s[len-1]=='\n'){ s[len-1]='\0'; len--; } char(518点数解答 | 2024-10-25 17:28:04)179
- [字节豆包] 本题要实现的程序功能是: ①从键盘上先后读入两个不超过32个字符的字符串,存储在字符数组str1和str2中。②将字符串str2插入字符串str1中,在屏幕上输出新生成的str1。 函数接口定义: void conj(char *s1, char *s2); 裁判测试程序样例: #include <stdio.h> #include <string.h> #define n 32 void conj(char *s1, char *s2); int main(void) { char str1[n * 2], str2[n]; gets(str1); gets(str2); conj(str1, str2); printf("after conj string1:%s\n", str1); return 0; } /* 请在这里填写答案 */ 用c语言(212点数解答 | 2024-12-12 18:12:00)211
- [讯飞星火] 快速排序:# include< iostream>using namespace std;# include< stdlib. h># include< time. h>const int n =10;const int min= 10;const int max=99;int getrand( int min, int max){return ( rand()%( max-min+1)+ min);}void set( int r[], int n){int i;for(i=0;i<n;i++)r[i]=getrand(min, max);}void show( int r[], int n){int i;for(i=0;i<n;i++)cout << r[i]<<" ";cout << endl;}int partition( int r[], int i, int j){//由你完成}void quicksort( int r[], int i, int j){//由你完成}int main(){srand( time(0));int a[n];set(a, n);cout<<"(710点数解答 | 2024-11-14 10:44:25)275
- [阿里通义] 快速排序:# include< iostream>using namespace std;# include< stdlib. h># include< time. h>const int n =10;const int min= 10;const int max=99;int getrand( int min, int max){return ( rand()%( max-min+1)+ min);}void set( int r[], int n){int i;for(i=0;i<n;i++)r[i]=getrand(min, max);}void show( int r[], int n){int i;for(i=0;i<n;i++)cout << r[i]<<" ";cout << endl;}int partition( int r[], int i, int j){//由你完成}void quicksort( int r[], int i, int j){//由你完成}int main(){srand( time(0));int a[n];set(a, n);cout<<"(951点数解答 | 2024-11-14 10:46:29)260
- [字节豆包] 快速排序:# include< iostream>using namespace std;# include< stdlib. h># include< time. h>const int n =10;const int min= 10;const int max=99;int getrand( int min, int max){return ( rand()%( max-min+1)+ min);}void set( int r[], int n){int i;for(i=0;i<n;i++)r[i]=getrand(min, max);}void show( int r[], int n){int i;for(i=0;i<n;i++)cout << r[i]<<" ";cout << endl;}int partition( int r[], int i, int j){//由你完成}void quicksort( int r[], int i, int j){//由你完成}int main(){srand( time(0));int a[n];set(a, n);cout<<"(472点数解答 | 2024-11-14 10:51:44)249
- [讯飞星火] 解释下列代码 #include <stdio.h> #include <string.h> // 定义排序字符串的函数 void sortstring(char *a, char *b) { int len = strlen(a); strcpy(b, a); // 先将 a 的内容复制到 b 中 // 使用冒泡排序对字符串进行排序 for (int i = 0; i < len - 1; i++) { for (int j = 0; j < len - i - 1; j++) { if (b[j] > b[j + 1]) { // 交换 b[j] 和 b[j + 1] char temp = b[j]; b[j] = b[j + 1]; b[j + 1] = temp; } } } } int main() { char a[(1092点数解答 | 2024-11-27 08:08:34)151
- [字节豆包] #include<iostream> using namespace std;#include<stdlib.h>#include<time.h> const int n =10; const int min =10; const int max =99; int getrand(int min, int max) { return (rand() % (max - min +1) + min); void set(int r[], int n){ int i; for(i = 0; i< n; i++) r[i] = getrand(min,max); void show(int r[], int n) { int i; for (i = 0; i<n;i++) cout << r[i] << ""; cout << endl;}void sift(int r[],int m,int k){ } void heapsort(intr[], int n){ //由你完成 int main(){ srand(time(0)); int a[n]; set(a,n); cout <<"原序(417点数解答 | 2024-11-28 11:20:23)312