一道编程题。 请输入一行字符(用回车结束),输出每个字符以及与之对应的ASCII代码值。每行输出三对。
作者&投稿:离陆 (若有异议请与网页底部的电邮联系)
撸主,你好。 程序是先从输入缓冲区取一个字符c,打印其acsii码后,才去判断c是否是'
'的,所以就是这里出了问题啦。你的输入是 ABCDEFG
, 字符'G'后面的换行符就是'
'导致的。
好久不写C了,给你说一下方法得了。定义一个字符串数组str[],getchar()!='
' 把字符写进数组,记录长度n,然后再写出来就行了。
int i=0,j=0;
for(;j<n;j++){
printf("%c %d ",str[j],str[j]);
i++;
if(i==3){
printf("
");
i=0;
}
}
好像可以,你试试看!快两年没写C了,忘光了,还有更快速和简洁的算法,期盼楼下的兄弟来回答了。(或许是楼上的(*^__^*) )
#define len 100 /*len为定义的可输入的最大长度*/
int main()
{
int i , j ;
char str[len] ; /*str保存输入的字符串*/
gets( str ) ; /*输入str,以回车符结束*/
i = 0 ;
j = 0 ;
while( str[i] ) /*对每个字符操作*/
{
printf( "%c %d" , str[i] , str[i] ) ; /*直接的输出*/
j ++ ;
if( j > 2 ) /*利用j控制每行三个*/
{
printf( "\n" ) ;
j = 0 ;
}
else
printf( " " );
i ++ ;
}
if( j ) /*对于最后的一个不满三个的最后输出个换行符*/
printf( "\n" ) ;
return 0 ;
}
var s:string;
i,t:longint;
begin
readln(s);
for i:=1 to length(s) do
begin
write(s[i],' ',ord(s[i],' '));
inc(t);
if t mod 3=0 then writeln;
end;
end.
用什么语言编写也不说
訾元青叶: #include <stdio.h> #define len 100 /*len为定义的可输入的最大长度*/ int main() { int i , j ; char str[len] ; /*str保存输入的字符串*/ gets( str ) ; /*输入str,以回车符结束*/ i = 0 ; j = 0 ; while( str[i] ) /*对每个字符操作*/ { printf( "%c %d" , str[i] , str[i] ) ; ...
敦化市14710257737: c语言编程题:输入一行字符,并以回车结束,将其中的小写字母转换成大写字母,其他字符不变. - ?
訾元青叶: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18#include<stdio.h> #include<string.h> intmain(void) {charstr[100]={0};intlength,i;scanf("%s",str);length=strlen(str);for(i=0;i<length;i++){if(str[i]>='a'&&str[i]<='z'){str[i]-=32;}}printf("%s\n",str);return0; }
敦化市14710257737: c语言编程题:输入一行字符,并以回车结束 - ?
訾元青叶: #include <stdio.h>void change(char str[40]){ for(int i=0;i<40;i++) { if(str[i]>=97&&str[i]<=122) str[i]-=32; }}void main(){ char str[40]="aAbbbCCC012"; for(int i=0;i<40;i++) { printf("%c",str[i]); } change(str); for( i=0;i<40;i++) { printf("%c",str[i]); }}
敦化市14710257737: 1. 请编写程序,输入一行字符(用回车结束),输出每个字符以及与之对应的ASCII代码值,每行输出三对. - ?
訾元青叶: #include<stdio.h>int main() {char arr[100]; int i=0,j=0; int m=1;printf("请输入字符,回车结束\n");do {scanf("%c",&arr[i++]);}while(arr[i-1]!='\n');for(;j<=i;j++,m++) {printf("%c:%d ",arr[j],arr[j]);if(m%3==0) {printf("\n"); } }return 0;}
敦化市14710257737: 请编写程序.输入一行字符(用回车结束),输出每个字符以及对应的ASCii码值.每行输出三对 - ?
訾元青叶: //在dev-c++下编译通过#include <stdio.h> #include <string.h>int main() {char c;int i;while((c=getchar())!='\n'){i++;printf("%5c,%3d",c,c); if(i%3==0)printf("\n");}scanf("%d"); }
敦化市14710257737: 请编写程序,输入一行字符(用回车结束),输出每个字符以及对应的ASCII代码值,每行输出三对. - ?
訾元青叶: 给n赋值0就行了,修改如下: #include<stdio.h> main() {char ch;int n=0;while((ch=getchar())!='\n'){printf("%c:%d",ch,ch);n++;if(n%3==0)putchar('\n');} } n++的位置也改了下,要不第一行是空行
敦化市14710257737: C语言题 输入一行数字字符(用回车结束), - ?
訾元青叶: 第一题: #include<iostream> #include<string> using namespace std; int main() { char s[129];int n,k,i;gets(s);k=strlen(s);for(i=1;i<=k-1;i=i+2)cout<<s[i];return 0; }第2题:#include<stdio.h> void main() {int i,j,n;scanf("%d",&n);for(i=0;i...
敦化市14710257737: 求答案急 !! 编写程序,输入一行字符(用回车结束),输出每个字符以及与之对应的ASCII代码值,每行输出 - ?
訾元青叶: #include<stdio.h> #include<string.h> void main() { char a[100]; int i, n;gets(a);n=strlen(a);for (i=0; i<n; i++) printf("%c-->%d \n",a[i],a[i]);}
敦化市14710257737: 请输入一行数字字符(用回车结束),每个数字字符的前后都有空格.请编程,把这一行中的数字转换成一整数?
訾元青叶: #include <stdio.h> #include <ctype.h> int main() { char c; while ((c = getchar()) != '\n') { if (isdigit(c)) { printf("%c", c); } } return 0; }
敦化市14710257737: C语言编写,输入一行字符(用回车结束),每个数字字符的前后都有空格.请编程,把这一行中的数字转换成一个整数 - ?
訾元青叶: 数字的asc2码不是从零开始的,之所以“ch-'0'”就是为了这个 这个函数从字符串头开始读,所以先读到的数字在高位,所以每读到下一个,已经出现的数就乘以10