-
a[i]=a[i]*pow(10,t);
你已经将 a[i] 乘以 10 很多次,以至于你肯定超出了 int 范围。
如果你能像这样乘法,你就不需要一个接一个地存储数组了,对吧?
有几点建议:
如果您使用的是数组,则可以考虑在进入时从后到前存放数组。
很快。 for(i=0;i<=a-1;i++)cin>>a[i];
相反。 for(i=a-1;i>=0;i--)cin>>a[i];
这样做的优点是 A 和 B 数组从单个位对齐,这有利于位之间的加法和减法。
您可以考虑为数组中的元素多添加几个以上的数字。
例如,从 a[0] 到 a[3],可以单独存储 3 的 5 位,这样可以减少原来五分之一的空间消耗。 以下操作可以稍作修改。
对这个问题可能影响不大,但我们应该培养这种优化算法的思想,凡事从小事做起,只有慢慢积累,才能成就大事。
也可以使用字符串字符串来处理这个问题,这也比较简单。
-
我错了一个问题,一旦我写了以下内容,他们就 cI:
每个人有时都做错了事,我也做错了事,但对我来说最难忘的是那一次。
那天,我放学回家,开始写数学作业,写完后,我把它扔给妈妈,妈妈开始仔细检查。 “嘉欣,我在这个问题上犯了一个错误。 妈妈和蔼地说。
我不耐烦地说:“嘿,它来了。 看完问题,我不解地问道
**有什么问题吗? 妈妈小心翼翼地告诉我这个问题的意思,我却跺了跺脚,皱着眉头,不耐烦了,于是大声喊道:“知道了,明白了!
我这样大喊大叫,但我妈妈仍然对我微笑。
过了一会儿,弟弟对我说:“你应该主动向妈道歉,妈对你这么好,你真的不应该这样对待妈! “我想了想,在这件事上我确实有点过分了,所以我走到我母亲身边,扑进她的怀里,说:
妈妈,对不起,我不该这样跟你说话。 妈妈没有说话,只是笑着拥抱了我。
在这件事上,我非常感谢哥哥叫醒了我,让我明白自己做错了,丛琦去向妈妈道歉,从而得到了妈妈的原谅。 同时,我也明白,我们的母亲悉心教导和培养我们,我们应该懂得感恩,学会尊重和爱护她!
-
3.误差:数组按升序排列,发现i,j为一个区间逐渐变窄,每个区间范围减半,当xa[k]时,即x在a[k]的正确范围内,下限i=k+1,当a[k]==x时,直接跳出;
找到 a[k] 并删除它,使 a[k] 后面的数字向前移动,并将 a[9] 设置为 0;
3.输出一个新数组,并在其前面添加输出原始数据的比较。
#include ""
#include
using namespace std;
int main()
int x, t1, t2, i, j, k;
int a[10] =
printf("请输入需要删除的整数");
scanf_s("%d", x);
printf("原始数据为:");
for (i = 0; i < 10; i++)printf("%5d", a[i]);
printf("");
i = 0;
j = 9;
while (i <=j)
k = i + j) /2;
if (a[k] =x)
break;
if (a[k]>x)
j = k - 1;
if (a[k]i = k + 1;
if (i>j)
printf("需要删除的数字不在数组中");
else for (i =k; i<10; i++)a[i] =a[i + 1];
a[9] =0;
printf("%5d", a[i]);
for (i = 0; i < 10; i++)printf("%5d", a[i]);
printf("");
system("pause");
return 0;
-
您好,很高兴您的问题。
我通读了你的程序,没有仔细分析,但是我发现了一个逻辑错误,我猜程序跑到这个地方的时候,不容易跑下来。 就是句子a[k]=x,在C语言中,=代表赋值,就是把右边的数据值赋给左边的变量,这句话总是真的,那么这句话总是真的,所以break语句就执行了。 我想你应该把它改成a[k]==k,那么就没有这样的问题了,你可以试试。
-
<>这是程序出错的地方,请执行我纠正的操作。
-
1.太阳应该是和,太阳是一个未定义的变量2,p==n,这里面的p也没有声明,应该是小写的p,其他逻辑看着它,似乎并不觉得异常。
-
有几个问题:
1. 如果 n 表示预设的终止条件,则不应在循环中分配 n。
2. 当 for 循环达到 49 时,int 将出现越界错误并变为负数。 而每次 n = a[i],所以 a[i] < = n in while 总是满足的,而 n 到 50 之后越线变为负数,n < 10000 也满足,这样就会形成一个无限循环。
3.修改:第一个是在for循环中,不要给n赋值,加一个条件,遇到a[i] >= n,break; 紧随其后的是输出 i; 不要在外层。
第二种类型如下,空间复杂度为o(1)。
-
修改位置:
1. 在第 4 行中,添加一个变量 k。 将语句替换为:
int m,n,s,q,k;
2. 在第 8 行中,添加一句话:
q=m;3. 在第 11 行中,添加一句话:
s=n;4. 在第 12 行中,将其替换为以下内容
while(q%s!=0)
5. 在第 14 行中,将其替换为以下内容
k=q%s;
6. 删除第 16 行;
7. 在第 18 行中,将其替换为以下内容:
q=s;8. 在第 20 行中,将其替换为以下内容:
s=k;9. 将第 20 行中的 n 替换为 s:
printf(“%d”,s);
10. 在第 26 行中,将 m 替换为 m*n s:
printf(“%d”,m*n/s);
进行这些更改后,程序就没有问题了。 详见下图
修改后的程序。
-
您好,很高兴您的问题。
使用此程序,您只需要更改循环中语句的顺序即可。
在循环体中,改为:s=m%n;
q=m*n/s;
n=s;m=q;
桑葚(桑葚) 坤氏(绅士) 嗓音沸腾(人声沸腾) 女人和儒家知道(女人和孩子都知道) 金习 夏名(签名) 简明意思(简明意思) 野兽死亡组(兽项死亡组) 恐慌(犹豫) 点缀(撺掇) 从框架中抓出(抓住眼睛) 消失(消失) 浮水(福水) 噪音 热量(干热) 苦如苦(包括苦涩) 迷失(少数) 迷失(哀悼) 肌肉健康(肌腱) 微笑可以鞠躬(微笑可以被爱) 无与伦比(无与伦比) 悲伤(恍惚) 狩猎(狩猎) 抱怨天空(抱怨天空) 无尽(滔滔不绝) 签名(欣赏) 恶心的钱(赚钱) 指向高处(雄心勃勃) 疲惫(疲惫) 服务(治疗) 甜蜜而安静(宁静) 微不足道(微不足道) 令人惊讶的胜利(令人惊讶的胜利)。