c语言问题:下面的程序我随便输入什么字符串最后输出都是a,为什么?哪里错了

作者&投稿:宠伯 (若有异议请与网页底部的电邮联系)
C语言,下面的程序到底哪错了?最后的字符串输不进去!!!~

你这个程序没有错误,只是你输入的时候要注意
输入语句这样写scanf("%d%c%s",&st.a,&st.b,st.c);
你输入的时候就应该这么输入,
如12ahello回车
这样输入,st.a得到12,st.b得到a字母 ,st.c得到hello
而不能
12空格a空格hello
这样输入将会得到如下结果
st.a得到12,st.b得到空格字符 ,st.c得到a字符
自己可以试试看。

你第一次max=p[0]的时候p[0]未输入,是一个随机值

如楼上所说,却是输出最小字符。

for(i=0;i<n-j;i++)问题出在这里,这第二个循环的控制应该是i<n-1-j
改成for(i=0;i<n-1-j;i++)试试。
如果是n-j的话,那么当j=0的时候,a[n]='\0';
把这个字符交换到a[1]当然puts(a)只输出a[0]咯。

#include "stdio.h"
#include "string.h"
main()
{
char a[100],b[100];
int i,j,n,temp;
printf("fisrst string:\n");
gets(a);
printf("second string:\n");
gets(b);
strcat(a,b);
n=strlen(a);
for(j=0;j<n-1;j++)
for(i=j;i<n;i++)
{if(a[j]>=a[i])
{
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
puts(a);
}

把两个字符串连接起来,然后按从小到大的顺序修改,再输出
循环里的问题

你输入两个不带字符a的试试??
实际上输出的是字典序最小的字符

你的循环 i 在里面那层了


30分,c语言问题...下面的程序是计算正整数num的各位上的数字之积。阅 ...
1、1 2、0 3、一个从键盘输入的long型的整数

在C语言中,下面的程序中s+=a[i][i]+a[i][3-i-i]的值怎么算?
s+a[i][i]+a[i][3-1-1]的结果再赋值给s 即s=s+a[i][i]+a[i][3-1-1]类似 s*=a等价于 s=s*a

C语言问题,下面程序想判断输入的90个学生成绩是优,及格,不及格。但是...
scanf("%d",a[i]);这句有问题,scanf都是以内存方式写入方式,所以第二个参数以后都是传入内存的地制值。改为:scanf("%d",&a[i]);程序就可以正确执行了。

c语言问题! 下面这个程序运行时没有结果,为什么?
while((c=getchar()) != EOF)是指到了文件的末尾时候才结束,而你的程序中又不是读的文件是在屏幕上输入的,所以不会结束,你在输入时候按Ctrl + z 建就可以结束了,,,给文件一个结束符。

c语言阅读下面的程序,写出程序运行输出结果
for循环循环3次,依次调用三次f(1),而f中的z和y是static静态变量,只初始化一次,而且在退出函数的时候还会保持它们的值。知道这个就可以走一次循环了:比如k=1,即f(1)开始x=1;z=3,y=0;y++;z++;\/\/这行结束后y为1,z为4x+y+z=1+1+4=6;k=2,f(1)第二次调用x=1;z=4,y=1(...

c语言的问题,下面那段代码是什么意思啊,至于下面的什么程序、命令我更...
你输入的命令行,有3个参数,那么argc等于3,argv[0]="abcd",strlen(argv[0])=4;argv[1]="efg",strlen(argv[1])=3;argv[2]="10",strlen(argv[2])=2;所以4+2+3=9 打印输出9。

c语言,下面程序的运行结果是?
commaExpr: 逗号表达式 以上逗号表达式为:(commaExpr_1, commaExpr_2)其中commaExpr_1为:(commaExpr_1_1, commaExpr_1_2)C会做如下处理:1、计算commaExpr_1_1. x的值变成了15, commaExpr_1_1为15 2、计算commaExpr_1_2. commaExpr_1_2的值为21 3、计算commaExpr_1. commaExpr_1的值...

C语言分配空间问题求解,下面的程序犯了什么错误呢,说是没有分配空间,应...
char *name 这个成员的字符指针没有分配空间,可以改成char name[20];就行了

C语言,下面程序段的时间复杂度是多少?
是O(log3(n))。分析:第1次循环进入后i=3(3^1),第2次循环进入后i=9(3^2),...假设第k次循环是最后一次循环,则进入后i=3^k,同时有3^k等于n,所以k=log3(n),时间复杂度为O(log3(n))(即以3为底,n的对数)。

c语言,运行下面的程序
034 是 八进制 转化成十进制为 3*8+4=28 o 是以八进制输出 x<<1 相当于 x*2 28*2=56 转化成八进制 56\/8 7 就是 70

秀峰区13583886177: 为什么我写的c语言出现这种情况,要等我随便输入一个数字后,才开始运行 -
虞谈唐瑞: 因为 #include "stdio.h"void InPutScoreCalculate(int studentscore){ int max=0,min=100,total=0,average=0; int inputscore; int index; char yesorno; for(index=0;1;) { printf("请输入第%d个学生的成绩,负数结束:",index+1); scanf("%d",&...

秀峰区13583886177: 如下c语言程序,我想随意输入一个数来代替那个3,这个程序错在哪呢? -
虞谈唐瑞: scanf("%c",printf("%c",k[0][1]);}...

秀峰区13583886177: 急求C语言程序 随便输入一个字母,运行结果向后移四位.要求能够循环 -
虞谈唐瑞: #include "stdio.h" #include "windows.h"main() { char c; printf("input a char:"); scanf("%c",&c); if(!isalpha(c)) {printf("input error!\n");return; } printf("%c\n",isalpha(c+4)? c+4:c-22); getchar(); }

秀峰区13583886177: 求随意输入任意数量数字之和的C语言程序 -
虞谈唐瑞: #include int main() {int n,a,sum=0;printf("输入加数个数\n");scanf("%d",&n);for(int i=0;i {scanf("%d",&a);sum=sum+a;}printf("sum=%d\n",sum);return 0; }

秀峰区13583886177: C语言问题,下面程序为什么我输入abc回车后,直接就输出abc了 -
虞谈唐瑞: 原因: 第一个scanf 从输入缓冲区中取数据(所谓的输入),手动输入数据时只取出回车符号(或者是空格符号)之前,紧接着就是第二scanf 开始从输入缓冲区中取数据,此时输入缓冲区中还存在第一次输入的回车符,所以就直接取出(也不会给你机会输入了),继续向下执行了.解决方案: 在scanf 输入之前,加上 fflush(stdin); 目的是清空输入缓冲取,使输入缓冲区下次取出数据之前是干净的.希望可以帮助到你.

秀峰区13583886177: C语言问题:若执行下面的程序时从键盘上输入5,则输出是 -
虞谈唐瑞: 应该选择B,过程如下 1. x++>5,因为++ 在后,所以是先赋值后自增,故x++的值是5,但是x的值因为自增所以是6 2. 因为x++>5,不满足条件,所以执行else语句,x--这个也是--在后,所以也是一个先赋值后自减,因此x--的值是6

秀峰区13583886177: 求一C语言程序 目的是自己随便输入一个小于五位数的数字 程序(1)可以输出这个数字是几位数(2) 每位数是多少 (3)把数字反过来输出 如123输出321
虞谈唐瑞:#include<stdio.h> int main() {int a; scanf("%d",&x); if(x>9999) printf("wu\n"); printf("%d",a%10); printf("%d",a%100/10); printf("%d",a%1000/100); printf("%d",a%10000/1000); printf("%d",a/10000); else if(x>999) printf("si\n"); ...

秀峰区13583886177: 求助c语言代码错哪了,主要是一运行就是等待输入,我随便打什么就显示什么 -
虞谈唐瑞: 你这代码,哪儿有输入函数嘛.我简单看了一下,应该是i=1时死循环了,自己在else厘米加打印看嘛

秀峰区13583886177: 用C语言写程序,用户随意输入数据(100以内),判断数据是否已经输入过了,不可以用循环判断 -
虞谈唐瑞: #include<stdio.h> int main() { int a[101]; int i, n;for(i=1; i<=100; i++) a[i]=0; printf("输入一个数1到100之间, 输入0退出\n"); scanf("%d", &n); while(n!=0) { if(a[n]==0) { printf("没输入过\n"); a[n]=1;} else printf("输入过\n"); printf("输入一个数1到100之间, 输入0退出\n"); scanf("%d", &n); } }

秀峰区13583886177: C语言, 我随便输入(scanf)一个值(赋值给变量a),用什么语句让printf重 -
虞谈唐瑞: 用循环语句输出.例如:int a,i; scanf("%d",&a); for (i=0;i<a;i++) printf("%d\n",a);

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网