C语言的一道题,急求解。 关于C语言的一道题目,急求解,谢谢

作者&投稿:堂亚 (若有异议请与网页底部的电邮联系)
你的程序问题多多
需要修改的地方也很多,可能思路也很难用你程序里的
我做了一个,你可以参考一下我的,或许你也能改动些变成你的

我在程序如下:
#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语言的一道题~

我给了你一个图片 这是上机实验的结果,就是直接把你的程序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("
");
}

c语言。。急求解啊~~谢谢各位!~~
答:分析:字符char型与数字的转换可以通过+-'0'实现 char c = '0'; int ic = (int)c; ic会=48,这就是ASCII码值。那么'8'变成数字8就是 '8'-'0'。int ic = '8'-'0'; ic=8.--- 上面的函数应该实现的功能是:字符串模拟数字运算!c=s[0][i]+s[1][i]-2*'0'; 实际上是 ...

C语言的三道题,求大神解答
答:1,include<stdio.h> int main(){ int a,b=2,c;printf(“请输入a和c:\n”);scanf(“%d %d”,&a,&c);printf(“%d\n”,(a+b)*c);return 0;} 2,include<stdio.h> int main(){ int a;scanf(“%d”,&a);printf(“%d”,a);return 0;} 3,include<stdio.h> define ...

c语言一道题求解释,循环嵌套,内循环为啥总从初值开始呢,在线等
答:我在疑惑你这个问题,,为啥不是从初始值开始呢,,你是怎么想的,,可以说说,我说下我的,当外面的for里i=4时,ok,开始进入内部,先输出一个*号,然后开始后面这个for,这个for显然运行不了,因为矛盾了,所以后面的那个×号无法输出,然后换行,ok,刚才的整个过程,对于外面的那个for来说,只是...

c语言编程题,急求解答,在线等!
答:代码如下 include <stdio.h>#include <string.h>typedef struct{char name[21];int cnt;}MAIL;MAIL mail[100];void new_mail(char *name){int i;for(i = 0; mail[i].cnt && i < 100; i ++){if(strcmp(name, mail[i].name) == 0){mail[i].cnt ++;return;}}if(i >= 100)...

急求解一道C语言编程题!
答:high%10)//车号的前两位相同 && (low/10 == low%10) //车号的后两位相同 && (high%10 != low%10) ) //前两位与后两位不同 { break;} } if (i<100) {printf("found: %d\n", i);}//找到了 else {printf("not found\n");}//没找到 我运行了一下,结果是88的平方7744 ...

求高人解答C语题目。急求!!!
答:C#语言将所有数据类型分为___值类型___和___引用类型___两大类。每个属性可包含一个___get___访问器和一个___set___访问器。构造函数必须与_方法_名称相同。例如,定义了类Y,它的默认构造函数是_public class Y() {}。类的静态成员用___static___修饰,对它们的访问通过___进行。从...

【C语言二级】题目如图,答案bBbA为什么不是bBaA呢?急求解!
答:因为函数第一个参数是指针,函数内数值变化的结果 会 被带回到调用处。函数第2个参数 不是 指针, 函数内数值变化的结果 不会 被带回到调用处。所以 得 b,B,b,A

一个C语言程序设计题,急求解答~~
答:cout<<setw(12)<<"学号"<<setw(12)<<"语文(1)"<<setw(12)<<"数学(2)"<<setw(12)<<"外语(3)"<<setw(12)<<"c++(4)"<<setw(12)<<"物理(5)"<<endl;for(m=0;m<3;m++){ for(n=0;n<6;n++){ cout<<setw(12)<<a[m][n];} cout<<endl; //?解决输入时学号与...

c语言题,急求大神给我答案
答:简单写了一个输入及显示程序。默认#define DEBUG 0,定义这个是为了调试用,免得每次都要输入数据,麻烦;想要调试,设DEBUG成1就好。具体代码示例:include<stdio.h>#include<string.h>#include<malloc.h> #define LEN sizeof(struct student)#define DEBUG 0struct subject {int math;//数字成绩 int...

C语言急求解马上采纳 习题二第三题按要求两种方式多谢
答:1.include <stdio.h> void main(){ int a,b;scanf("%c %c",&a,&b); //注意输入是 :5空格7 printf("%d\n",a+b);} 2.include <stdio.h> void main(){ char a,b,c; //输入也是5空格7 a=getchar();c=getchar();b=getchar();printf("%d\n",a+b-'0'-'0');}...