| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1296 人关注过本帖
标题:求问代码哪里出错了?
只看楼主 加入收藏
goosey
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2018-4-7
结帖率:71.43%
收藏
已结贴  问题点数:18 回复次数:6 
求问代码哪里出错了?
题目如下:
给你一个字符串,现要求你对其进行处理,使得处理后的字符串满足如下要求:
字符串里面的元音字母全部为大写;
其余字母全部为小写。
输入:输入的第一行为一个正整数T(T<=20),表示测试数据的个数。
每个输入的字符串只包含大写字母和小写字母。字符串长度不超过50。
输出:对于每一个测试数据,输出其对应的结果。每个结果占一行。

代码如下:
程序代码:
#include<stdio.h>
#include<string.h>

int main(){
    int T;
    scanf("%d",&T);
    int i,j;
    char zimu;
    
    for(i=0;i<T;i++){
        scanf("%c",&zimu);
        int length=strlen(zimu);
        for(j=0;j<length;j++){
            if(zimu=='a'||zimu=='e'||zimu=='i'||zimu=='o'||zimu=='u') 
                printf("%c",zimu-32);
            else if(zimu=='A'||zimu=='E'||zimu=='I'||zimu=='O'||zimu=='U') 
                printf("%c",zimu);
            else if(zimu>='B'&&zimu<='D'||zimu>='F'&&zimu<='H'||zimu>='J'&&zimu<='N'||zimu>='P'&&zimu<='T'||zimu>='V'&&zimu<='Z') 
                printf("%c",zimu+32);
            else
                printf("%c",zimu);            
        }
    }

    return 0;
}


编译错误如下:
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2018-4-20 16:51编辑过]

搜索更多相关主题的帖子: 代码 字母 int || printf 
2018-04-20 16:47
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:5 
你定义的是单个字符 而不是字符串
改成zimu[100]

穷举是最暴力的美学
2018-04-20 17:04
goosey
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2018-4-7
收藏
得分:0 
回复 2楼 nosnoy
程序代码:
#include<stdio.h>
#include<string.h>

int main(){
    int T;
    scanf("%d",&T);
    int i,j;
    char zimu[50];
    
    for(i=0;i<T;i++){
        scanf("%c",&zimu);
        int length=strlen(zimu);
        for(j=0;j<length;j++){
            if(zimu[j]=='a'||zimu[j]=='e'||zimu[j]=='i'||zimu[j]=='o'||zimu[j]=='u') 
                printf("%c",zimu-32);
            else if(zimu[j]=='A'||zimu[j]=='E'||zimu[j]=='I'||zimu[j]=='O'||zimu[j]=='U') 
                printf("%c",zimu);
            else if(zimu[j]>='B'&&zimu[j]<='D'||zimu[j]>='F'&&zimu[j]<='H'||zimu[j]>='J'&&zimu[j]<='N'||zimu[j]>='P'&&zimu[j]<='T'||zimu[j]>='V'&&zimu[j]<='Z') 
                printf("%c",zimu+32);
            else
                printf("%c",zimu);            
        }
    }

    return 0;
}

改成这样为啥还是不对
2018-04-20 17:14
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:0 
回复 3楼 goosey
你上面改了下面不改的啊
  for(i=0;i<T;i++){
        scanf("%c",&zimu);
        int length=strlen(zimu);

穷举是最暴力的美学
2018-04-20 17:27
李晨经纪人
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:175
专家分:848
注 册:2018-2-14
收藏
得分:5 
把scanf("%c",&zimu);改成scanf("%s",zimu);( 不过最好不用scanf)还有下面的printf("%c",zimu+32)改成printf("%c",zimu[j]+32);else那个也要改
2018-04-20 19:24
吃货海贼王
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2018-4-22
收藏
得分:5 
#include<stdio.h>
#include<string.h>

int main(){
    int T;
    scanf("%d",&T);
    int i,j;
    char zimu[50];
   
    for(i=0;i<T;i++){
        scanf("%s",zimu);
        int length=strlen(zimu);
        for(j=0;j<length;j++){
            if(zimu[j]=='a'||zimu[j]=='e'||zimu[j]=='i'||zimu[j]=='o'||zimu[j]=='u')
                printf("%c",zimu[i]-32);
            else if(zimu[j]=='A'||zimu[j]=='E'||zimu[j]=='I'||zimu[j]=='O'||zimu[j]=='U')
                printf("%c",zimu[i]);
            else if(zimu[j]>='B'&&zimu[j]<='D'||zimu[j]>='F'&&zimu[j]<='H'||zimu[j]>='J'&&zimu[j]<='N'||zimu[j]>='P'&&zimu[j]<='T'||zimu[j]>='V'&&zimu[j]<='Z')
                printf("%c",zimu[i]+32);
            else
                printf("%c",zimu[i]);            
        }
    }

    return 0;
}
改成这样为啥还是错的,求改正
2018-04-22 09:02
ab1412
Rank: 7Rank: 7Rank: 7
来 自:M78星球
等 级:黑侠
威 望:4
帖 子:103
专家分:537
注 册:2018-3-15
收藏
得分:5 
程序代码:
#include<stdio.h>
#include<string.h>

int main(){
    int T;
    scanf("%d",&T);
    int i,j;
    char zimu[50];
    
    for(i=0;i<T;i++){
        scanf("%s",zimu);
        int length=strlen(zimu);
        for(j=0;j<length;j++){
            if(zimu[j]=='a'||zimu[j]=='e'||zimu[j]=='i'||zimu[j]=='o'||zimu[j]=='u') 
                printf("%c",zimu[j]-32);
            else if(zimu[j]=='A'||zimu[j]=='E'||zimu[j]=='I'||zimu[j]=='O'||zimu[j]=='U') 
                printf("%c",zimu[j]);
            else if(zimu[j]>='B'&&zimu[j]<='D'||zimu[j]>='F'&&zimu[j]<='H'||zimu[j]>='J'&&zimu[j]<='N'||zimu[j]>='P'&&zimu[j]<='T'||zimu[j]>='V'&&zimu[j]<='Z') 
                printf("%c",zimu[j]+32);
            else
                printf("%c",zimu[j]);            
        }
    }
    
    return 0;
}



printf里面的循环变量当然用的是j,你用i输出的当然不对

printf("萌新一枚,请多指教");
2018-04-22 10:26
快速回复:求问代码哪里出错了?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029361 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved