编写一个程序要求 将输入的字符修改为1//2
想问下怎么修改
在Linux系统下运行
#include <stdio.h>
#include <string.h>
#define N 256
int main()
{
char a[N];
fgets(a, N, stdin);
for (int i = 0, n = (strlen(a) & ~1); i < n; i += 2)
putchar(a[i] < a[i + 1] ? a[i] : a[i + 1]);
putchar('\n');
return 0;
}
char *a[n];
改为 char a[n]
#include<stdio.h>
#define n 256
int main()
{
char a[n+1] = {0};
int i;
fgets(a,n,stdin);
if(strlen(a)%2){
for(i=0;i<strlen(a)-1;i=i+2)
{
if(a[i]<=a[i+1])
printf("%c", a[i]);
else
printf("%c",a[i+1]);
}
}
else{
for(i=0;i<strlen(a);i=i+2)
{
if(a[i]<=a[i+1])
printf("%c", a[i]);
else
printf("%c",a[i+1]);
}
}
printf("\n");
}
把char *a[n]改为char a[n];然后把后面%s改为%c就可以了。修改了一下,如下:
#include<stdio.h>
#include <string.h>
#define n 256
int main()
{
char a[n];
int i;
fgets(a,n,stdin);
if(strlen(a)%2){
for(i=0;i<strlen(a)-1;i=i+2)
{
if(a[i]<=a[i+1])
printf("%c", a[i]);
else
printf("%c",a[i+1]);
}
}
if(strlen(a)%2==0){
for(i=0;i<strlen(a);i=i+2)
{
if(a[i]<=a[i+1])
printf("%c", a[i]);
else
printf("%c",a[i+1]);
}
}
printf("\n");
}
修改如下,供参考:
#include<stdio.h>
#include<string.h>
#define n 256
int main()
{
char a[n]; //修改
int i,len;
fgets(a,n,stdin);
len = strlen(a);
for(i=0;i<len-2;i++)
{
if(i%2==0){
printf("%c",a[i] < a[i+1] ? a[i]:a[i+1]);
//if(a[i]<=a[i+1])
// printf("%c", a[i]);
//else
// printf("%c",a[i+1]);
}
}
//}
//else{ //if(strlen(a)%2=0){
// for(i=0;i < len;i=i+2)
// {
// if(a[i]<=a[i+1])
// printf("%c", a[i]);
// else
// printf("%c",a[i+1]);
// }
//}
printf("\n");
return 0;
}