for(int i=10; i>1; --i) cout<<.*.;里面的i>1和<<作用
时间: 2023-11-28 09:42:46 浏览: 298
for循环是一种常用的循环结构,它的语法格式为:for (初始化表达式; 条件表达式; 更新表达式) 循环语句。其中,初始化表达式在循环开始前执行一次,条件表达式在每次循环开始前都会被求值,如果为true则继续循环,否则跳出循环,更新表达式在每次循环结束后执行一次。在这个代码示例中,for循环的条件表达式是i>1,表示只要i的值大于1就会继续循环,当i的值等于1时跳出循环。而<<是C++中的输出运算符,用于将数据输出到控制台。因此,这段代码的作用是从10开始循环,每次输出.*.,直到i的值等于1为止。
相关问题
读下列程序,该程序生成有10个整数的安全数组。要把值放入数组中,使用put()函数;然后取出该值,使用get()函数;put()和get()中若遇下标越界则立刻终止程序运行。其运行结果为后面所示,请完成两个未写出的函数定义。 #include<iostream> using namespace std; int& put(int n); //put value into the array int get(int n); //obtain a value from the array int vals[10]; int error=-1; int main() { put(0)=10; //put values into the array put(1)=20; put(9)=30; cout<<get(0)<<endl; cout<<get(1)<<endl; cout<<get(9)<<endl; put(12)=1; //out of range return 0; } 运行结果要求为: 10 20 30 range error
以下是程序代码:
```c++
#include <iostream>
using namespace std;
int& put(int n); // put value into the array
int get(int n); // obtain a value from the array
int vals[10];
int error = -1;
int main() {
put(0) = 10;
put(1) = 20;
put(9) = 30;
cout << get(0) << endl;
cout << get(1) << endl;
cout << get(9) << endl;
put(12) = 1;
return 0;
}
int& put(int n) {
if (n < 0 || n >= 10) {
cout << "range error" << endl;
exit(1);
}
return vals[n];
}
int get(int n) {
if (n < 0 || n >= 10) {
cout << "range error" << endl;
exit(1);
}
return vals[n];
}
```
函数 `put()` 和 `get()` 的定义如下:
```c++
int& put(int n) {
if (n < 0 || n >= 10) {
cout << "range error" << endl;
exit(1);
}
return vals[n];
}
int get(int n) {
if (n < 0 || n >= 10) {
cout << "range error" << endl;
exit(1);
}
return vals[n];
}
```
`put()` 函数返回指向数组中指定下标位置的引用,如果下标越界则输出错误信息并退出程序。`get()` 函数返回数组指定下标位置的值,如果下标越界则输出错误信息并退出程序。在 `main()` 函数中,使用 `put()` 函数将数值放入数组,并使用 `get()` 函数获取数组中的数值,最后试图访问超出数组范围的下标,引发 `range error` 错误。
1.改错题 【题目】下面程序功能是: (1).函数fun(...)是把数组a中各元素的中各位偶数拼接成一个反序的新数值存放到数组b中。假如某元素值为:654321,各位偶数拼接成一个反序的新数值246;元素值为:654300,各位偶数拼接成一个反序的新数值46。 (2).主函数main()利用循环产生10个随机整数存入x数组并输出至屏幕,调用函数fun()产生数组y。最后输出数组y中的元素。 【参考结果】该程序运行后,最后的输出结果是(因随机数,该答案仅供参考): 数组y中各元素数为:4 648 46 62 6 42 84 82 2662 46442 【要求】只允许在原语句上进行修改,可以增加个别说明语句,但不能增加或删除整条程序语句或修改算法。 #include<iostream. h> #include<stdlib. h> void fun(int a, int b) { int i,n; for(i=0;i<10;i++) { int m; n=a[i]; while(n=0) { if(n%10/2==0) m=m∗10+n%10; n/=10; a[i]=m; } } void main() { int i,x[10],y[10]; for(i=0;i<10;i++) { x[i]=rand(); cout<<x[i]<<" "; } fun(x,y); Cout<<''|n Cout<<''|n 数组y中各元素数为:"; for(i=0;i<10;i++) cout<<y[i]<<' \backslash t'; <<' \backslash t'; cout<<"h"; cout<<"h"; }
【修改后的程序】
#include<iostream.h>
#include<stdlib.h>
void fun(int a[], int b[]) { //修改1:函数参数类型应为数组类型,而非int类型
int i,j;
for(i=0;i<10;i++) {
int m=0, n=a[i]; //修改2:变量m需要初始化为0
while(n!=0) { //修改3:while循环条件应为n!=0,而非n=0
if(n%10/2==0) m=m*10+n%10;
n/=10;
}
b[i]=m; //修改4:将结果存入数组b中
}
}
void main() {
int i,x[10],y[10];
for(i=0;i<10;i++) {
x[i]=rand();
cout<<x[i]<<" ";
}
fun(x,y);
cout<<"\n数组y中各元素数为:";
for(i=0;i<10;i++)
cout<<y[i]<<"\t";
cout<<"\n";
}
【修改说明】
1. 函数fun的参数类型应该是数组类型,而非int类型。因为要传递数组a和数组b,需要在函数定义中声明为数组类型。
2. 在函数fun中,变量m需要初始化为0。
3. 在函数fun中,while循环条件应该是n!=0,而非n=0。因为n=0是赋值操作,而非条件判断。
4. 在函数fun中,将结果存入数组b中,而非数组a中。因为要将处理后的结果存入新数组b中。
5. 修改了一些语法错误,如cout拼写错误、缺少分号等。
阅读全文