C语言的一道题,急求解。
我给了你一个图片 这是上机实验的结果,就是直接把你的程序copy过来的 ,应该是你自己的问题 ,你再上机检验一次。
还有什么不懂的,找我问我...
你的程序有很多处错误
改后:
#include
main()
{int x,y,i,a[8],j,u;
scanf("%d",&x);
y=x;i=0;
do
{u=y/2;
a[i]=y%2;
}while(y>=1);
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
}
不过没有输出结果,
不知你要表达什么
如果想十进制整数转二进制
那你的代码编写错误了
临时编的
可以通过运行
#include
#include
main()
{
int a,b[80],j=0,i,k;
scanf("%d",&a);
while(a!=0)
{i=a%2;
b[j]=i;
a=a/2;
j++;}
k=j-1;
for(;k>=0;k--)
printf("%d",b[k]);
printf("
");
}
需要修改的地方也很多,可能思路也很难用你程序里的
我做了一个,你可以参考一下我的,或许你也能改动些变成你的
我在程序如下:
#include "stdio.h"
#include <string.h>
int main()
{
int k=0,i, j;
char a[100];
int flag = 1;//用来设置输入回车符号的标志
for(k=0;flag!= 0;k++)//flag为0时停止循环
{
scanf("%c",&a[k]);
if (a[k] == 10)//如果有回车符号输入,flag的值变为0
{
flag =0;
}
}
k = 0;//k值要再次赋0值
long arr[100];//用来保存整数的数组
long sum = 0;//计算中间的整数
int num =0;//计算整数个数
j = 0;//数组下标
while(a[k] != 10)//判断是否为回车符号,
{
if (a[k]<='9' && a[k]>= '0')//如果是数字进入该循环体
{
num++;
sum = 0;
int i = 0;
while(a[k]<='9' && a[k]>= '0')//如果是数字进入该循环体
{
if (i == 0)//第一个数字
{
sum = (int)(a[k]-48);//将字符转换为数字
}
else//非第一个数字
{
sum =10*sum + (int)(a[k]-48);//将字符转换为数字
}
i++;
k++;
}
arr[j++] = sum;//将计算的数字存到数组中
k--;
}
k++;
}
printf("The number of continious integer is %i\n",num);
printf("The integers are like follows: \n");
i = 0;
while (--j >=0)
{
printf("%ld\n",arr[i++]);
}
return 0;
}
运行效果如下:
54sdf ?02395 sdfk pp 888
The number of continious integer is 3
The integers are like follows:
54
2395
888
请按任意键继续. . .
用atoi函数可能简单点
12 while(a[k] != '\n') //这里k 没初始化。。
13 {
14 if(a[k]<='9' && a[k]>= '0')
15 {
16
17 j=0;
18 b[i][j] = a[k]; //i 没有初值 ,k也没有 。。
19 while(a[++k] <= '9' &&a[++k]>='0')
20 b[i][++j]=a[k];
21 i++;
22 }
23 }
24 printf("The number of continious integer is %i",i); //%i 什么格式? 改%d 或%ld
#include <stdio.h>
#define MAX 20
void main() {
int k=-1,i=-1,j,t;
char a[MAX],b[MAX][MAX];
do{
k++;
scanf("%c",&a[k]);
}while(a[k]!='\n');
k=0;
while(a[k]!='\n'){
if((a[k]<='9')&&(a[k]>='0')){
i++;j=0;
b[i][j] = a[k];
k++;
while((a[k]<='9')&&(a[k]>='0')){
j++;
b[i][j]=a[k];
k++;
}
j++;b[i][j]='\n';
if(a[k]=='\n') k--;
}
k++;
}
printf("The number of continious integer is %d\n",i+1);
printf("The integers are like follows: \n");
t=i;
for(i=0;i<=t;i++){
j=0;
while(b[i][j]!='\n'){
printf("%c",b[i][j]);
j++;
}
printf("\n");
}
}
运行效果如下:
12df 7da798 7~@#5t
The number of continious integer is 3
The integers are like follows:
12
7
98
7
5
换个思路把,看我的:
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int ch, num = 0, flag = 0, count = 0;
while(ch = getchar())
{
if(!isdigit(ch) && flag)
{
printf("%d ", num);
count++;
num = flag = 0;
}
if(isdigit(ch))
{
num = 10 * num + ch - '0';
flag = 1;
continue;
}
if(ch == '\n')break;
}
printf("\ncount = %d\n", count);
return 0;
}
C语言问题急救
首先123\/2商61 余 1 61\/2 商30 余 1 30\/2 商15 余 0 15\/2 商7 余 1 7\/2 商3 余 1 3\/2 商1 余 1 1\/2 商0 余 1 所以,123转换为二进制就是1111011 其它进制也可以如法炮制。如果仅仅是为了转16进制、八进制,可以使用c语言的控制串:十进制到八进制:scanf ("%d", ...
C语言问题,急救.
1. 用isalpha(stu[i].num[j]) 和 isdigit(stu[i].num[j])do{ key = 1;for(i=0; i<2 && key = 1; i++)if(!isalpha(input[i]))key=0;for(i=2; i<9 && key = 1; i++)if(!isdigit(input[i]))key=0;if(key == 1)strcpy(stu[j].num, input)}while(key==0);2...
C语言问题 急救!!!
楼主在C语言中字符是可以当成整形来参与运算的,其原因是因为字符在计算机的内部是按ASCII 码来存储的,‘A’是65,‘B’是66,‘0’是48,因此该赋值语句可看成B=66-65+48,这样B就是49,若B直接按%d输出,则显示49,若按%c输出,则49对应的字符是‘1’所以输出的是1。当然字符在屏幕上输出...
急救!!!马上C语言考试了,有个问题不懂,请大家帮帮忙!!
第一题。。i = 4开始。。进入循环,判断I= 4 为真。。然后后置减,i=3 输出语句。。先置减,I=2然后输出。。第二次判断I =2。.进入循环后置减i=1;输出语句先置减,i=0;输出。。第二题。。while后面有分号。。会直接在进入循环知道i=0的时候判断为假出循环。。i=0的时候判断为假,然...
急救C语言问题 写出详细步骤 还有static的作用
你所与的那程序这么理解 首先定义两静态变量 m=0,i=2;第一次调用fun()函数,把j=4,m=1传过去 则fun()内计算结果为 i+=m+1; \/\/结果为i=3 m=i+x+y; \/\/结果为m=8 所以第一次输出为K+8;第二次调用fun()i,m为静态变量,所以没有随第一次fun函数的结束而释放内存,所以i...
急救:关于C语言的问题
(1),int a〔50〕,n;定义了整型数n和数组a[50]。(2),fun(n,&a[9])第一个参数传递的是整型数n,那么很容易知道,定义时应该是 fun(int p, ...),其中p可换成任何字符。也就是说 fun(int p, ...)和 fun(int q, ...)是等价的,是同一函数。第二个参数,&a[9],你说它算...
c语言,急救
这还需要慢慢看一下的。include<stdio.h>voidmain(){inti;charc;for(i=0;i<=7;i++){c=getchar();putchar(c);}}1(简答题)分析以上程序,运行时从键盘输入AABABCD↙或者A↙AB↙ABCD↙,查看运行结果,分析原因。(箭头表示回车键)
c语言急救啊 c语言帝快来 救救小生啊!!!
1---sum+=t[i],i+=2,所以sum=1+3+5+7+9=25。.2---strlen求实际长度=5,sizeof求申明长度=20。3---func(func(x,y),z);就是先x+y=7,然后+8=15。4---这题可能你发错了吧!你的选项应该都不能输出M。5---++(p->x),先取出值,然后再自加,应该为11。6---循环体是K...
C语言 数组的问题!!急救!!
isAMember = 1;break;} } isAmember = 0;(2)题目是这样子的:有以下数据,int j, k int const nZips;\/\/已初始化 int zipcodeList[nZips] \/\/已初始化 int duplicates;要求是,如果sizcodeList数组里有任意两个相同的数则把duplicates赋1,否则赋0;代码如下:for (j=0; j < nZips; ++...
急救啊,C语言编程题。 求:X、Y,使XY-YX=35成立。
这个命题本身存在不明确的地方。我假设X,Y都是数字0,1,...9,此编程问题可以转化为一个数学问题:求10以内的正整数X,Y,使得(10*x+y)-(10*y+x)=35 经过简单的运算,等式可以化成9*(x-y)=35,很明显,35不能被9整除,所以不存在满足条件的x和y。
纳曲宜妥: 因为在point函数中,p这个指针指向的内容是可被修改的,而p指针本身的值(指向b数组的开始地址)不能被修改.用 point(char **p) 即可.
成都市19240016100: 求解一道简单的C语言C程序C编程题 - ?
纳曲宜妥: 题目没说清.1.输入仅限于小写字母还是所有字符;2 y,z输出a,b还是也按ASCII码向后推两位.#include <stdio.h>#include <string.h> int main() { char iword; char oword; while(iword = getchar()) { if(iword == '\n') break; oword = (iword - 95) % 26 + 97; printf("%c",oword); } printf("\n"); return 0; } 输入:abcdefxyz 输出:cdefghzab 此程序仅限输入小写字母.
成都市19240016100: 急求一道C语言题答案【在线等】假设已有10个学生的成绩,从键盘上输入这10个学生的成绩(成绩的值由你自己来定),输出10个学生成绩的平均分(用... - ?
纳曲宜妥:[答案] #include #define N 5 main() {float a[N],sum=0,ave; int i; printf("请输入学生的成绩:\n"); for(i=0;iscanf("%f",&a[i]); for(i=0;isum+=a[i]; ave=sum/N; printf("这些学生的成绩数平均分是:%.2f",ave); printf("高于平均分的成绩如下所示:\n...
成都市19240016100: 急求一道C语言题的解法过程…1+1/(1+1/(1+1/X))就是用具体步骤写出来…谢谢了补充一下X=5.0求Y(那个式子) - ?
纳曲宜妥:[答案] 这样就可以了 #include #define x 5 int main() { int i; double y=1.0/x; for(i=x-1;i>0;i--)y=1.0/(1+y); printf("y=%lf\n",y); return 0; }
成都市19240016100: 求一道三个数相加的题?用C语言写的?急、急… - ?
纳曲宜妥:[答案] include void main () { int a,b,c; printf("输入二个数"); scanf("%d,%d",&a,&b) ; c=a+b; printf("%d\n",c); }
成都市19240016100: 一道C语言题,急…… - ?
纳曲宜妥: 本题的一个完整的c程序如下,在win-tc和Dev-c++下调试通过.每个书名设定不超过80字符...
成都市19240016100: 求助:一道C语言程序的题,急!初学还不怎么会,谢谢,多给分 - ?
纳曲宜妥: main(){ int a[10],b[10],c[10]; int i; int *p; printf("please input a[10]:\n"); p=a; for(i=0;i<10;i++) scanf("%d...
成都市19240016100: 一道c语言题目,急 - ?
纳曲宜妥: main() { int score,n=0,max=0,min=999,sum=0; int a=0,b=0,c=0; float av; printf(“请输入若干成绩,-1结束:\n”); while(1) { scanf(“%d”,&score); if(score==-1)break;++n; if(score max)max=score; sum+=score; score/=10; swich(score) { case 10:; ...
成都市19240016100: c语言的一道编程题目,求解~~~ - ?
纳曲宜妥: c语言一道题目,求解 悬赏分:0 - 离问题结束还有 14 天 23 小时 题目是:把一个链表按反序排序,即将原链头当作链尾,原链尾当作链头.将链表的数据保存在文中,并能读取出来,用函数实现.我把程序写成如下了,可是为什么保存不了呢...
成都市19240016100: 一道简单的c语言题目求解 - ?
纳曲宜妥: #include <stdio.h> int main() { char c[5]; printf("输入4位数\n"); scanf("%s",c); for(int i=0;i<4;i++) printf("%c ",c[i]); scanf("%s",c); return 0; }